[洛谷1042]乒乓球
2015-12-20 15:57
85 查看
题目来源
www.luogu.org原地址 http://www.luogu.org/problem/show?pid=1042#
题目背景
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
题目描述
华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):
WWWWWWWWWWWWWWWWWWWWWWLW
在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。如果一局比赛刚开始,则此时比分为0比0。
你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。
输入输出格式
输入格式:每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。
输出格式:
输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。
输入输出样例
输入样例#1:WWWWWWWWWWWWWWWWWWWW WWLWE
输出样例#1:
11:0 11:0 1:1 21:0 2:1
题解
此题只需用四个累加器,不断累加,其中两个到11就记录清0;另外两个到21就记录清0。
但是有几个陷阱需要注意:
1.因为是乒乓球,所以当10:10(20:20)时应加一球(即一方分数到12分(22分)时才算获胜)。
2.遇到'E'时应停止读入,数据中就有这种坑。
3.如果开头就是一个'E',也到单独判断一下。
代码
var
f:boolean;
a,b,a1,b1,h,i,j,t:longint;
s:string;
c,d:array[1..10000] of
longint;
begin
f:=true;a:=0;b:=0;a1:=0;b1:=0;h:=0;t:=1;
while f
do
begin
readln(s);if (s[1]='E')and(t=1) then begin
writeln('0:0');writeln;writeln('0:0');exit;end;
t:=0;
for i:=1
to length(s) do
begin
if s[i]='E' then begin
f:=false;break;end
else if s[i]='W' then begin inc(a);inc(a1);end
else if s[i]='L' then begin inc(b);inc(b1);end;
if (a<10)and(b=11)or(b<10)and(a=11) then
begin writeln(a,':',b);a:=0;b:=0;end;
if (a>9)and(b=a+2)or(b>9)and(a=b+2) then
begin writeln(a,':',b);a:=0;b:=0;end;
if (a1<20)and(b1=21)or(b1<20)and(a1=21)
then begin
inc(h);c[h]:=a1;d[h]:=b1;a1:=0;b1:=0;end;
if
(a1>19)and(b1=a1+2)or(b1>19)and(a1=b1+2) then begin
inc(h);c[h]:=a1;d[h]:=b1;a1:=0;b1:=0;end;
end;
if
not(f) then
begin
writeln(a,':',b);
inc(h);c[h]:=a1;d[h]:=b1;
end;
end;
writeln;
for i:=1 to h do
writeln(c[i],':',d[i]);
end.
相关文章推荐
- [洛谷1031]均分纸牌
- [洛谷1125]笨小猴
- [洛谷1540]机器翻译
- [洛谷1067]多项式输出
- [洛谷1017]进制转换
- [洛谷1003]铺地毯
- 华为手机使umeng分享popwindow被底部导航栏挡住问题
- Aexi(8)-Caret位置标记的再思考
- 《UML之用例图》
- scala-38::List伴生对象操作方法代码实战
- php $_GET $_POST $_COOKIE取值过程
- Composer 中国镜像
- 让wordpress标签云显示文章数的正确方法
- UICollectionView reloadData 遇上 layoutAttributesForSupplementaryElementOfKind “crash”
- Android架构简洁之道
- LeetCode Find the Duplicate Number
- python核心编程-实例的默认参数
- tmux 使用
- 关于swift的访问级别
- 【Linux】lvm基础操作