QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#420444 | #2820. 令人难以忘记的题目名称 | 300_205_205# | WA | 27ms | 6164kb | C++14 | 2.5kb | 2024-05-24 18:17:47 | 2024-05-24 18:17:50 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define rg register
#define ll long long
#define ull unsigned ll
#define lowbit(x) (x&(-x))
int djq;
const double eps=1e-10;
const short sint=0x3f3f;
const int inf=0x3f3f3f3f;
const ll linf=0x3f3f3f3f3f3f3f3f;
const double alpha=0.73;
const double PI=acos(-1);
inline void file(){
freopen("entrench.in","r",stdin);
freopen("entrench.out","w",stdout);
}
inline ll read(){
rg ll ret=0,f=0;char ch=getchar();
while(!isdigit(ch)){if(ch==EOF)exit(0);if(ch=='-')f=1;ch=getchar();}
while(isdigit(ch)){ret=ret*10+ch-48;ch=getchar();}
return f?-ret:ret;
}
#define ep emplace
#define epb emplace_back
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define it iterator
#define mkp make_pair
#define naive return 0*puts("Yes")
#define angry return 0*puts("No")
#define fls fflush(stdout)
#define rep(i,x,y) for(rg int i=(x);i<=(y);++i)
#define per(i,x,y) for(rg int i=(x);i>=(y);--i)
#define rep0(i,a) for(rg int i=0;i<=a;++i)
#define per0(i,a) for(rg int i=a;~i;--i)
#define szf sizeof
typedef vector<int> vec;
typedef pair<int,int> pii;
struct point{ int x,y; point(int x=0,int y=0):x(x),y(y) {} inline bool operator<(const point& T)const{ return x^T.x?x<T.x:y<T.y; }; };
inline int ksm(int base,int p){int ret=1;while(p){if(p&1)ret=1ll*ret*base%djq;base=1ll*base*base%djq,p>>=1;}return ret;}
inline void pls(int& x,const int k){ x=(x+k>=djq?x+k-djq:x+k); }
inline int add(const int a,const int b){ return a+b>=djq?a+b-djq:a+b; }
inline void sub(int& x,const int k){ x=(x-k<0?x-k+djq:x-k); }
inline int inc(const int a,const int b){ return a<b?a-b+djq:a-b; }
inline void ckmn(int& x,const int k){ x=(k<x?k:x); }
inline void ckmx(int& x,const int k){ x=(k>x?k:x); }
inline void ckmn(ll& x,const ll k){ x=(k<x?k:x); }
inline void ckmx(ll& x,const ll k){ x=(k>x?k:x); }
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
int n,a[300005],b[300005],ans;
void dif(int x){
rep(i,0,n-1) b[i]=inc(a[(i+x)%n],a[i]);
}
int chk(int x){
rep(i,0,n-1) if(a[i]!=a[(i+x)%n]) return 0;
return 1;
}
signed main(){
// file();
n=read(),djq=read();
rep(i,0,n-1) a[i]=read()%djq;
ans+=(a[0]!=0);
rep(i,1,n-1) a[i]=inc(a[i],a[0]);
a[0]=0;
int nw=1;
while(n%(nw*djq)==0) nw*=djq;
if(!chk(nw)) return 0*puts("-1");
while(nw!=1){
nw/=djq;
while(!chk(1)){
dif(nw);
if(chk(1)&&nw!=1) break;
rep(i,0,n-1) a[i]=b[i];
ans+=nw;
}
}
printf("%d\n",ans);
return 0;
}
/*
*/
详细
Test #1:
score: 0
Wrong Answer
time: 27ms
memory: 6164kb
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:
29792
result:
wrong answer 1st lines differ - expected: '29019', found: '29792'