http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2056
题意就是打印机打印纸张。但是有一个坑点就是 当打印纸张非常多的时候的处理过程。之后就是 当打印完成后当记录打印的纸张数==最大纸张数s,的时候s要改变,并且cnt归零。
我不知道什么原因- -一样的代码原来写的就WA,这次自己重写一次就过了
#include <iostream> #include <algorithm> #include <stdio.h> #include <string> #include <string.h> #define mxas 2200202 #define mme(i,j) memset(i,j,sizeof(i)) #define ll long long #define bug(x) puts(x); using namespace std; char name[2005],temp[2005]; ll pages; ll cnt; int main() { int t; long long int n,x,y,mod,s; scanf("%d",&t); while(t--) { cnt=0; cin>>n>>s>>x>>y>>mod; for(int i=0;i<n;i++) { cin>>name>>temp>>pages>>temp; // cnt is used paper in printer if(cnt+pages>s) { printf("%lld pages for %s\n",s-cnt,name); cnt =0; s = (s*x+y)%mod; cnt =cnt + pages; while(1) { if(cnt<=s) break; printf("%lld pages for %s\n",s,name); cnt =0; cnt+=pages; s = (s*x+y)%mod; } if(cnt == s) { cnt =0; s = (s*x+y)%mod; } printf("%lld pages for %s\n",pages,name); } else{ printf("%lld pages for %s\n",pages,name); cnt= cnt+pages; } } puts(""); } return 0; }