voidUncompress(FILE *infile, FILE *outfile){int N, k, L, i, now, A, B, Q, tmp;fscanf(infile,"%d%d%d",&N,&k,&L);fscanf(infile,"%d%d%d%d",&now,&A,&B,&Q);fprintf(outfile,"%d%d\n", N, k);for(i =1; i < N; i ++){
now =(now * A + B)% Q;
tmp =(i < L)? i : L;fprintf(outfile,"%d%d\n", i - now % tmp, i +1);}}
Pascal 版本:
procedure Uncompress(var infile, outfile : text);
var N, k, L, i, now, A, B, Q, tmp : longint; begin
read(infile, N, k, L, now, A, B, Q);
writeln(outfile, N, ' ', k);
for i := 1 to N - 1 do begin
now := (now * A + B) mod Q;
if i < L then tmp := i
else tmp := L;
writeln(outfile, i - now mod tmp, ' ', i + 1);
end;
end;