C++ ACM编程出现Runtime Error SIGSEGV错误,不知道到底出错在哪里啊?求高人指点
题目:ReducedIDNumbersT.ChurteachesvariousgroupsofstudentsatuniversityU.EveryU-studentha...
题目:
Reduced ID Numbers
T.Chur teaches various groups of students at university U. Every U-student has a unique
Student Identification Number (SIN). A SIN s is an integer in the range 0 ≤ s ≤ MaxSIN with
MaxSIN = 106-1. T.Chur finds this range of SINs too large for identification within her
groups. For each group, she wants to find the smallest positive integer m, such that within
the group all SINs reduced modulo m are unique.
Input
On the first line of the input is a single positive integer N, telling the number of test cases
(groups) to follow. Each case starts with one line containing the integer G (1 ≤ G ≤ 300):
the number of students in the group. The following G lines each contain one SIN. The SINs
within a group are distinct, though not necessarily sorted.
Output
For each test case, output one line containing the smallest modulus m, such that all SINs
reduced modulo m are distinct.
Sample Input
2
1
124866
3
124866
111111
987651
Sample Output
1
8
我的代码:
#include<iostream>
using namespace std;
int main()
{
int casenum,G;
long long SIN;
int m,i,j,k,p,temp;
long long a[310],b[10000];
cin>>casenum;
for(i=1;i<=casenum;i++)
{
cin>>G;
for(j=0;j<G;j++)
{
cin>>SIN;
a[j]=SIN;
}
temp=0;
for(j=0;j<G;j++)
{
for(k=j+1;k<G;k++)
{
b[temp]=a[j]-a[k];
if(b[temp<0])
b[temp]=-b[temp];
temp++;
}
}
for(m=1; ;m++)
{
p=1;
for(j=0;j<temp;j++)
{
if(b[j]%m==0 )
{
p=0;
break;
}
}
if(p==1)
{
cout<<m<<endl;
break;
}
}
}
//system("pause");
return 0;
} 展开
Reduced ID Numbers
T.Chur teaches various groups of students at university U. Every U-student has a unique
Student Identification Number (SIN). A SIN s is an integer in the range 0 ≤ s ≤ MaxSIN with
MaxSIN = 106-1. T.Chur finds this range of SINs too large for identification within her
groups. For each group, she wants to find the smallest positive integer m, such that within
the group all SINs reduced modulo m are unique.
Input
On the first line of the input is a single positive integer N, telling the number of test cases
(groups) to follow. Each case starts with one line containing the integer G (1 ≤ G ≤ 300):
the number of students in the group. The following G lines each contain one SIN. The SINs
within a group are distinct, though not necessarily sorted.
Output
For each test case, output one line containing the smallest modulus m, such that all SINs
reduced modulo m are distinct.
Sample Input
2
1
124866
3
124866
111111
987651
Sample Output
1
8
我的代码:
#include<iostream>
using namespace std;
int main()
{
int casenum,G;
long long SIN;
int m,i,j,k,p,temp;
long long a[310],b[10000];
cin>>casenum;
for(i=1;i<=casenum;i++)
{
cin>>G;
for(j=0;j<G;j++)
{
cin>>SIN;
a[j]=SIN;
}
temp=0;
for(j=0;j<G;j++)
{
for(k=j+1;k<G;k++)
{
b[temp]=a[j]-a[k];
if(b[temp<0])
b[temp]=-b[temp];
temp++;
}
}
for(m=1; ;m++)
{
p=1;
for(j=0;j<temp;j++)
{
if(b[j]%m==0 )
{
p=0;
break;
}
}
if(p==1)
{
cout<<m<<endl;
break;
}
}
}
//system("pause");
return 0;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询