题目: | 乒乓球 | |
来源: | 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