POJ 3349 Snowflake Snow Snowflakes G++
程序员文章站
2022-06-04 17:15:25
...
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int prime=99991;
int a[100008][6];
vector<int> has[99999];
//抄博友程序
bool fun(int x,int y)
{
//cout<<"fun "<<x<<" "<<y<<endl;
for(int i=0;i<6;i++)
{
if(a[x][0]==a[y][i%6] && a[x][1]==a[y][(1+i)%6] && a[x][2]==a[y][(2+i)%6]
&& a[x][3]==a[y][(3+i)%6] && a[x][4]==a[y][(4+i)%6] && a[x][5]==a[y][(5+i)%6])
{
return true;
}else if(a[x][0]==a[y][i%6] && a[x][1]==a[y][(i+5)%6] && a[x][2]==a[y][(i+4)%6]//背
&& a[x][3]==a[y][(i+3)%6] && a[x][4]==a[y][(i+2)%6] && a[x][5]==a[y][(i+1)%6])
{
return true;
}
}
return false;
}
/*
bool fun(int x,int y)
{
for(int i=0;i<6;++i)
{
if(a[x][i]==a[y][0]&&a[x][(i+1)%6]==a[y][1]
&&a[x][(i+2)%6]==a[y][2]&&a[x][(i+3)%6]==a[y][3]
&&a[x][(i+4)%6]==a[y][4]&&a[x][(i+5)%6]==a[y][5])
{
return true;
}
if(a[x][i]==a[y][0]&&a[x][(i+5)%6]==a[y][1]
&&a[x][(i+4)%6]==a[y][2]&&a[x][(i+3)%6]==a[y][3]
&&a[x][(i+2)%6]==a[y][4]&&a[x][(i+1)%6]==a[y][5])
{
return true;
}
}
return false;
}*/
int main()
{
int n;
scanf("%d",&n);
//cin>>n;
int flag=0;
for(int i=0;i<n;i++)
{
int sum=0;
for(int j=0;j<6;j++)
{
scanf("%d",&a[i][j]);
//cin>>a[i][j];
sum=sum+a[i][j];
}
sum=sum%99991;
//cout<<sum<<endl;
for(int j=0;j<has[sum].size();j++)
{
if(fun(i,has[sum][j]))//
{
//cout<<i<<" "<<j<<endl;
flag=1;
break;
}
}
has[sum].push_back(i);
}
if(flag==0)
{
printf("No two snowflakes are alike.\n");
//cout<<"No two snowflakes are alike."<<endl;
}else
{
printf("Twin snowflakes found.\n");
//cout<<"Twin snowflakes found."<<endl;
}
return 0;
}
上一篇: mysql排序不稳定问题
下一篇: 股票数据分析——Python