| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
wrong answer 大家帮忙看一下#include<stdio.h>
#define MAX 100000
#define Prime 14997
int hash_table[MAX] = {0};
int main()
{
int n,i,j,a[6],sum0,sum1,loc,flag1=0;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
sum0 = 0;
sum1 = 0;
loc = 0;
for(j = 0; j < 6; j++)
a[j] = 0;
for(j = 0; j < 6; j++)
{
scanf("%d",&a[j]);
if(j != 0)
{
if(a[j] - a[j - 1] >= 0)
sum0 += a[j] - a[j - 1] ;
else
sum0 += -(a[j] - a[j - 1]);
}
sum1 += a[j];
}
if(a[j - 1] - a[0] >= 0)
sum0 += a[j - 1] - a[0];
else
sum0 += -(a[j - 1] - a[0]);
loc = (sum0 % Prime + sum1) % MAX;
if(hash_table[loc])
{
flag1 = 1;
}
else
hash_table[loc] = 1;
}
if(flag1)
printf("Twin snowflakes found.");
else
printf("No two snowflakes are alike.");
getchar();
getchar();
return 0;
}
//算法思想:为了确定顺序,使用相邻的两个数字相减(首尾也相减)取正数求和得出结果sum0和总共六个分支求和得到的数据sum1一起来计算hash地址 loc = (sum0 % Prime + sum1) % MAX;
//但是在提交的时候却是wrong answer
自己测试的时候没问题,也测试了一下之前几位前辈提供的测试数据也没问题
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator