POJ 3349 Snowflake Snow Snowflakes
这是一个水水的水题,排序再查找。
贴代码:
#include <stdio.h> #include <stdlib.h> struct node { int a[6]; }snow[100005]; int cmp1(const void *a,const void *b) { return *(int *)a-*(int *)b; } int cmp2(const void *a,const void *b) { struct node *c=(struct node *)a; struct node *d=(struct node *)b; for(int i=0;i<6;i++) { if(c->a[i]!=d->a[i]) { return c->a[i]-d->a[i]; } } return 0; } int main() { int n; while(scanf("%d",&n)!=EOF) { int i,j,flat=0,s[6]; for(i=0; i<n; i++) { for(j=0; j<6; j++) { scanf("%d",&s[j]); } qsort(s,6,sizeof(s[0]),cmp1); for(j=0;j<6;j++) { snow[i].a[j]=s[j]; } } qsort(snow,n,sizeof(snow[0]),cmp2); for(i=0;i<n-1;i++) { flat=1; for(j=0;j<6;j++) { if(snow[i].a[j]!=snow[i+1].a[j]) { flat=0; break; } } if(flat) { break; } } if(flat) { printf("Twin snowflakes found.\n"); } else { printf("No two snowflakes are alike.\n"); } } return 0; }