1 solutions
-
0
C++ :
# include<cstdio> # include<cstring> # include<cstdlib> int next[1000008],n,m,q,p,d,l,r,c[1000008],k; void Init() { scanf("%d%d%d%d",&n,&m,&p,&q); if (n>m) d=1;else d=m-n+1; for (int i=1;i<=n;i++) next[i]=i+1; } void Work() { int i,j,t; for (k=m;k>=d;k--) { l=(k*p+q)%n+1; r=(k*q+p)%n+1; if (l>r) {t=l;l=r;r=t;} for (i=l;i<=r;) { if (!c[i]) c[i]=k; j=next[i];next[i]=r+1; i=j; } } for (i=1;i<=n;i++) printf("%d\n",c[i]); } int main() { //freopen("winter.in","r",stdin); //freopen("winter.out","w",stdout); Init(); Work(); fclose(stdin); fclose(stdout); return 0; }
- 1
Information
- ID
- 17748
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By