题解:P10467 [CCC 2007] Snowflake Snow Snowflakes
Lele_Programmer · · 题解
P10467 题解
思路
对于每一片雪花,对六个长度进行排序(注意这里不能去重),然后在 set 里进行查找,如果存在,则输出 Twin snowflakes found.,如果不存在,则输出 No two snowflakes are alike.
代码
#include <bits/stdc++.h>
using namespace std;
const int N=100005;
int n;
set< vector<int> > st;
bool cmp(const int& a,const int& b) {
return a<b;
}
int main() {
scanf("%d",&n);
for (int i=1;i<=n;++i) {
vector<int> a;
for (int j=1;j<=6;++j) {
int v;
scanf("%d",&v);
a.push_back(v);
}
sort(a.begin(),a.end(),cmp);
if (st.find(a)!=st.end()) {
puts("Twin snowflakes found.");
return 0;
}
st.insert(a);
}
puts("No two snowflakes are alike.");
return 0;
}