记录编号 |
267692 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HZOI 2016]白雪皑皑 |
最终得分 |
100 |
用户昵称 |
Sky_miner |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.037 s |
提交时间 |
2016-06-11 16:47:50 |
内存使用 |
7.92 MiB |
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<cstdlib>
int next[1000008],c[1000008],k;
int main(){
freopen("winter.in","r",stdin);
freopen("winter.out","w",stdout);
int n,m,q,p;
scanf("%d%d%d%d",&n,&m,&p,&q);
int d;
if(n>m) d=1;
else d=m-n+1;
int j;
for(int i=1;i<=n;i++) next[i]=i+1;
for(int k=m;k>=d;k--){
int l=(k*p+q)%n+1;
int r=(k*q+p)%n+1;
if(l>r) l^=r,r^=l,l^=r;
for(int i=l;i<=r;){
if(!c[i]) c[i]=k;
j=next[i];
next[i]=r+1;
i=j;
}
}
for(int i=1;i<=n;i++) printf("%d\n",c[i]);
fclose(stdin);fclose(stdout);
return 0;
}