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;
}

浙公网安备 33010602011771号