这题直接模拟,坑点:打印机可以答应0张纸。
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<vector>
#include<queue>
#include<map>
#include<set>
#define B(x) (1<<(x))
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
void cmax(int& a,int b){ if(b>a)a=b; }
void cmin(int& a,int b){ if(b<a)a=b; }
void cmax(ll& a,ll b){ if(b>a)a=b; }
void cmin(ll& a,ll b){ if(b<a)a=b; }
void add(int& a,int b,int mod){ a=(a+b)%mod; }
void add(ll& a,ll b,ll mod){ a=(a+b)%mod; }
const int oo=0x3f3f3f3f;
const int MOD=2015;
char str[105][25];
int pa[105];
char temp[25];
int main(){
//reopen("G:\\read.txt","r",stdin);
int T;
int n,s,x,y,mod;
scanf("%d",&T);
while(T--){
scanf("%d %d %d %d %d",&n,&s,&x,&y,&mod);
for(int i=1;i<=n;i++){
scanf("%s%s%d%s",str[i],temp,&pa[i],temp);
}
int cnt=0;
for(int i=1;i<=n;i++){
while(cnt+pa[i]>s){
printf("%d pages for %s\n",s-cnt,str[i]);
cnt=0;
s=(s*x+y)%mod;
if(s==0)
s=(s*x+y)%mod;
}
printf("%d pages for %s\n",pa[i],str[i]);
cnt+=pa[i];
}
puts("");
}
return 0;
}
/**
1
3 7 7 7 177
Team1 request 7 pages
Team2 request 14 pages
Team3 request 7 pages
*/