QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#399798 | #2820. 令人难以忘记的题目名称 | wanyurukong | WA | 1060ms | 13004kb | C++17 | 1.8kb | 2024-04-26 17:54:00 | 2024-04-26 17:54:01 |
Judging History
answer
#include<bits/stdc++.h>
#define mem(i,a) memset(i,a,sizeof(i))
#define inf 0x3f3f3f3f3f3f3f3f
#define PII pair<int,int>
#define int long long
#define endl '\n'
using namespace std;
const int maxn = 3e5 + 5;
int a[maxn],b[maxn],c[maxn],d[maxn];
void solve() {
int n,p,sum=0;
cin>>n>>p;
for(int i=1; i<=n; i++) {
cin>>a[i];
b[i]=a[i]%p;
d[i]=a[i]%p;
a[i]%=2;
sum+=a[i];
}
if(n==1) {
cout<<1<<endl;
return;
}
if(n%4==0&&sum==n/2&&p==2) {
int f=0;
if(a[1]==a[2]) {
int l=(!a[1]);
for(int i=1; i<=n; i+=2) {
if(a[i]!=a[i+1]||a[i]==l) {
f=1;
break;
}
l=!l;
}
if(!f) {
cout<<3<<endl;
return ;
}
} else {
int l=(!a[2]);
for(int i=2; i<=n; i+=2) {
if(a[i]!=a[i+1]||a[i]==l) {
break;
}
l=!l;
}
if(a[n]==a[1]&&a[n]!=l) {
cout<<3<<endl;
return ;
}
}
}
if(p==2){
int cnt=0;
for(int i=1; i<=n; i++) {
if(i==1) {
if(a[i]!=a[n-1]) {
cout<<-1<<endl;
return ;
}
} else if(i==2) {
if(a[i]!=a[n]) {
cout<<-1<<endl;
return;
}
} else {
if(a[i-2]!=a[i]) {
cout<<-1<<endl;
return;
}
}
cnt+=a[i];
}
if(cnt==n) {
cout<<1<<endl;
return;
}
if(cnt==0) {
cout<<1<<endl;
return;
}
cout<<2<<endl;
return;
}
sort(b+1,b+n+1);
if(b[1]==b[n]) {
cout<<"1"<<endl;
return;
}
// cout<<1<<endl;
int ans=0;
for(int i=1;i<=1000;i++){
int f=0;
ans++;
for(int j=1;j<=n;j++)c[j]=p-d[j];
for(int j=1;j<=n-1;j++){
d[j]=(d[j]+c[j+1])%p;
if(j>=2&&d[j]!=d[1])f=1;
}
d[n]=(c[1]+d[n])%p;
// for(int j=1;j<=n;j++)cout<<d[j]<<" ";
// cout<<endl;
if(d[n]!=d[1])f=1;
if(f==0){
if(d[n]!=0)cout<<ans+1<<endl;
else cout<<ans<<endl;
return;
}
}
cout<<-1<<endl;
return;
}
signed main() {
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
// int _;
// cin >> _;
// while (_--)
solve();
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 1060ms
memory: 13004kb
input:
297910 31 113232 54750 68197 111096 34111 93605 123591 18035 81089 116592 24694 31596 60286 93804 59021 38782 20907 112337 52523 99808 71474 60598 132242 65758 78755 58580 4515 138889 92332 154059 2039 74180 53778 93861 30218 87862 32418 153778 129564 113461 138995 154233 145061 44213 116624 72685 8...
output:
-1
result:
wrong answer 1st lines differ - expected: '29019', found: '-1'