题目: | 乒乓球 | |
来源: | Noip2003p1 | |
题目大意: | 若干行字符串,’E’代表结束,’W’代表自己赢,’L’代表对手赢,分别输出11分制和21 分制的此时的比分情况,若大的一方大于11(21)且领先小的一方2及以上则该局结 束,两种比分中间有一个空行 | |
数据范围: | 一行最多20个字符,总字符长度<=1000000 | |
样例: | WWWWWWWWWWWWWWWWWWWW WWLWE | 11:0 11:0 1:1 21:0 2:1 |
做题思路: | 读字符然后模拟,读到E结束,如果读字符的话记得读个回车,不然就悲剧了。 | |
知识点: | 模拟 |
var a1,a2,b1,b2:array[0..100000]of longint; i,j,k,t:longint; ch:char; begin i:=1;j:=1; whilenot eof do begin read(ch); inc(t); ift=20 then begin readln; t:=0; end; ifch='E' then break; ifch='W' then inc(a1[i]) else inc(a2[i]); ifch='W' then inc(b1[j]) else inc(b2[j]); if((a1[i]>=11)and(a1[i]-a2[i]>=2))or((a2[i]>=11)and(a2[i]-a1[i]>=2))then inc(i); if((b1[j]>=21)and(b1[j]-b2[j]>=2))or((b2[j]>=21)and(b2[j]-b1[j]>=2))then inc(j); end; fork:=1 to i do writeln(a1[k],':',a2[k]); writeln; fork:=1 to j do writeln(b1[k],':',b2[k]); end.
题目来源:http://yuanti.tyvj.cn:8080/Problem_Show.asp?id=1034