4754990_ac_2938ms_2624k.cpp
来自「部分PKU上的源码」· C++ 代码 · 共 69 行
CPP
69 行
#include<iostream>
#include<stdlib.h>
using namespace std;
struct snow
{
int l[6];
} x[100005];
int n;
int bijiao(int x[],int y[])
{
for(int i=0;i<6;i++)
{
if(x[i]<y[i]) return -1;
else if(x[i]>y[i]) return 1;
}
return 0;
}
void change(int now)
{
int re[6],i,j,k;
for(i=0;i<6;i++) re[i]=x[now].l[i];
for(i=0;i<6;i++)
{
int temp[6];
k=i;
for(j=0;j<6;j++)
{
temp[j]=x[now].l[k];
k++;
if(k==6) k=0;
}
if(bijiao(temp,re)<0) for(k=0;k<6;k++) re[k]=temp[k];
k=i;
for(j=0;j<6;j++)
{
temp[j]=x[now].l[k];
k--;
if(k==-1) k=5;
}
if(bijiao(temp,re)<0) for(k=0;k<6;k++) re[k]=temp[k];
}
for(k=0;k<6;k++) x[now].l[k]=re[k];
}
int compare(const void *p1,const void *p2)
{
snow t1=*(snow*)p1;
snow t2=*(snow*)p2;
return bijiao(t1.l,t2.l);
}
int main()
{
cin>>n;
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<6;j++)
{
scanf("%d",x[i].l+j);
}
change(i);
}
qsort(x,n,sizeof(snow),compare);
for(i=1;i<n;i++)
{
if(bijiao(x[i].l,x[i-1].l)==0){cout<<"Twin snowflakes found.\n";return 0;}
}
cout<<"No two snowflakes are alike.\n";
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?