QOJ.ac
QOJ
QOJ is currently under a maintenance. It might be unavailable in the following a few hours.
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#847447 | #9078. Greatest Common Divisor | Ashley | AC ✓ | 166ms | 5944kb | C++17 | 2.2kb | 2025-01-07 23:26:34 | 2025-01-07 23:26:35 |
Judging History
answer
/*
Look at the star
Look at the shine for U
*/
#include<bits/stdc++.h>
#define ll long long
#define PII pair<int,int>
#define sl(x) scanf("%lld",&x)
using namespace std;
const int N = 1e6+5;
const int mod = 1e9+7;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1);
ll inv(ll b){if(b==1)return 1; return (mod-mod/b)*inv(mod%b)%mod;}
ll fpow(ll n,ll k){ll r=1;for(;k;k>>=1){if(k&1)r=r*n%mod;n=n*n%mod;}return r;}
ll s[N],fac[N],cnt;
int main()
{
ll n,i,j,k,sum,t,cas = 1;
sl(t);
while(t--)
{
sl(n);
sum = 0;
for(i = 0;i < n;i++){sl(s[i]),sum += s[i];}
printf("Case %lld: ",cas++);
if(sum == n)
{
puts("1");
continue;
}
sort(s,s+n);
ll flag = 0;
for(i = 0;i < n;i++)
{
if(s[i]%s[0]) flag = 1;
}
if(!flag && s[0] != 1)
{
puts("0");
continue;
}
ll Gcd = 0;
for(i = 1;i < n;i++)
{
ll dis = s[i]-s[i-1];
if(dis == 0) continue;
Gcd = __gcd(Gcd,dis);
}
if(Gcd == 1)
{
puts("-1");
continue;
}
flag = 0;
for(i = 0;i < n;i++)
{
if(s[i]%Gcd) flag = 1;
}
if(!flag)
{
puts("0");
continue;
}
cnt = 0;
for(i = 2;i*i <= Gcd;i++)
{
if(Gcd%i == 0)
{
fac[cnt++] = i;
fac[cnt++] = Gcd/i;
}
}
fac[cnt++] = Gcd;
sort(fac,fac+cnt);
ll minn = 1e18;
ll now = 0;
for(i = 0;i < cnt;i++)
{
ll temp = 0;
for(j = 0;j < n;j++)
{
if(s[j]%fac[i]) temp = 1;
}
if(!temp)
{
now = 1;
break;
}
}
if(now)
{
puts("0");
continue;
}
for(i = 0;i < cnt;i++)
{
minn = min(minn,fac[i]-s[0]%fac[i]);
}
printf("%lld\n",minn);
}
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 5944kb
input:
3 1 2 5 2 5 9 5 7 5 3 5 7 9 11
output:
Case 1: 0 Case 2: -1 Case 3: 1
result:
ok 9 tokens
Test #2:
score: 0
Accepted
time: 1ms
memory: 5940kb
input:
6 1 1 3 1 1 1 3 2 2 2 3 1 2 3 3 1 3 5 3 1 10 19
output:
Case 1: 1 Case 2: 1 Case 3: 0 Case 4: -1 Case 5: 1 Case 6: 2
result:
ok 18 tokens
Test #3:
score: 0
Accepted
time: 166ms
memory: 5936kb
input:
100 1 1 1 2 5 879961169 879961169 879961169 879961169 152615033 8 876139349 292671665 876139349 876139349 876139349 876139349 876139349 876139349 10 825359939 825359939 825359939 825359939 825359939 825359939 594330487 825359939 825359939 825359939 5 985688421 985688421 718069623 985688421 985688421...
output:
Case 1: 1 Case 2: 0 Case 3: 1 Case 4: 1 Case 5: 1 Case 6: 0 Case 7: 1 Case 8: -1 Case 9: -1 Case 10: 0 Case 11: 0 Case 12: 0 Case 13: 1 Case 14: 0 Case 15: 45 Case 16: 11 Case 17: 1 Case 18: -1 Case 19: -1 Case 20: 855585752 Case 21: 1982 Case 22: 260 Case 23: 0 Case 24: 0 Case 25: 0 Case 26: 0 Case...
result:
ok 300 tokens
Extra Test:
score: 0
Extra Test Passed