378 条题解
-
0财神爷 LV 6 @ 2009-10-08 10:25:22
var
a:array[1..2,1..100000] of integer;
b:string;
c,d,e,f,g,h:longint;
begin
c:=1;readln(b);
while b'' do
begin
h:=1;
while (b[h]'E') and (h=11) and (e-f>=2)) or ((f>=11) and (f-e>=2))) or (d=c) then
begin
writeln(e,':',f);
e:=0;
f:=0;
end;
end;
writeln;
e:=0;
f:=0;
for d:=1 to c do
begin
e:=e+a[1,d];
f:=f+a[2,d];
if (((e>=21) and (e-f>=2)) or ((f>=21) and (f-e>=2))) or (d=c) then
begin
writeln(e,':',f);
e:=0;
f:=0;
end;
end;end.
-
02009-10-07 18:13:49@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
program vijos1217;
var i,len:longint;s,ss:ansistring;ch,p:char;
tot:array['L'..'W']of longint;
beginss:='';
read(ch);
while ch'E' do
begin
if (ch='W')or(ch='L') then ss:=ss+ch;
read(ch);
end;
if ss='' then
begin
writeln('0:0');
writeln;
writeln('0:0');
halt;
end;
s:=ss;
len:=length(s);
repeat
tot['W']:=0;tot['L']:=0;
repeat
begin
inc(i);
if i=11)or(tot['L']>=11))and(abs(tot['W']-tot['L'])>1))or(i=len);
if i=21))and(abs(tot['W']-tot['L'])>1))or(i=len);
if i -
02009-09-18 18:37:12@
-
02009-09-13 18:11:35@
这道破题我交了n次,第一次对三个点,仔细一看,原来用了string。
改成ansi之后,对9个点,错的那个输出了0:0,再看看,原来不能用integer。
改为long之后又交了一次,结果那个点超时,我看了看评测机,原来是可恨的sunny。
最后交的一次是dragon,0ms…………
我恨sunny
-
02009-09-08 18:42:53@
program p1217;
var a:array[1..1000000]of char;
c:char;
i1,i2,i3,i4:longint;
begin{assign(output,'output1.txt');
rewrite(output);}
i1:=0;i2:=0;i3:=0;
repeat
read(c);
i1:=i1+1;
a[i1]:=c;
if c='W' then i2:=i2+1 else
if c='L' then i3:=i3+1;
if(((i2>=11)and(abs(i2-i3)>=2))or((i3>=11)and(abs(i2-i3)>=2))) then
begin
writeln(i2,':',i3);
i2:=0;
i3:=0;
end;
until c='E';
if ((i2=0)and(i3=0)and(a[1]='E'))
then
begin
writeln('0:0');
writeln;
writeln('0:0');
halt;
end
else
begin
writeln(i2,':',i3);
i2:=0;i3:=0;
writeln;
end;
for i4:=1 to (i1-1) do
begin
if a[i4]='W' then i2:=i2+1 else
if a[i4]='L' then i3:=i3+1;
if(((i2>=21)and(abs(i2-i3)>=2))or((i3>=21)and(abs(i2-i3)>=2))) then
begin
writeln(i2,':',i3);
i2:=0;
i3:=0;
end;
end;
writeln(i2,':',i3);
end. -
02009-11-01 21:24:59@
===我很无语……
===同样的代号 用大号第一次 90分
===用小号 AC了
===再用大号才AC了
===无语
===鄙视这些 烂 测评机 -
02009-09-06 10:15:04@
果然够WS,交了N次才AC.
第六组全靠RP.....
超时的同志们多交几次试试..... -
02009-08-29 17:04:12@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
a:array[1..100000]of string;
i,r,w,l:longint;
f:boolean;
begin
r:=0;
w:=0;l:=0;
while true do begin
inc(r);
readln(a[r]);
f:=true;
for i:=1 to length(a[r]) do
if a[r,i]='E' then begin
f:=false;break;
end else if a[r,i]='W' then begin
inc(w);
if (w>=11)and(w-l>=2) then begin
writeln(w,':',l);
w:=0;l:=0;
end;
end else begin
inc(l);
if (l>=11)and(l-w>=2) then begin
writeln(w,':',l);
w:=0;l:=0;
end;
end;
if not f then break;
end;
writeln(w,':',l);
writeln;
w:=0;l:=0;
for r:=1 to r do begin
for i:=1 to length(a[r]) do
if a[r,i]='E' then begin
writeln(w,':',l);
exit;
end else if a[r,i]='W' then begin
inc(w);
if (w>=21)and(w-l>=2) then begin
writeln(w,':',l);
w:=0;l:=0;
end;
end else begin
inc(l);
if (l>=21)and(l-w>=2) then begin
writeln(w,':',l);
w:=0;l:=0;
end;
end;
end;
end. -
02009-08-28 21:21:39@
编译通过...
├ 测试数据 01:运行时错误...|错误号: 216
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案错误... ├ 标准行输出
├ 错误行输出---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:80 有效耗时:0ms囧
第一个就是 E
还有要输0:0的。。 -
02009-08-27 14:43:24@
边读边计算,如果双方比分差大于或等于2而且有一方的分数已经达到分数上限
或者字符等于E就用数组存储比分,数组要开大。 -
02009-08-25 07:34:55@
简单题。本题不考算法,考的是对生活的观察与体会。乒乓球比赛,一个很常见的竞赛模式,做本题时,应该联想到看过乒乓球赛的各种情况。细节很重要,本人开始就是没有处理好判定胜负的细节,导致WA了一半的点。
算法提要:边读边计算,分两线同时计算,进行统计和判定比赛结束。判定方法:双方比分差距大于1,且有一方达到了分数上限(11或21)。最后输出时别忘了正在进行中的。
-
02009-08-21 16:37:39@
10分钟,WATER,不晓得通过率怎么有点悲剧。太简单了。什么都不用考虑。范围开的暴力点
var
a1,a2,b1,b2,l:longint;
ok:boolean;
s1:string;
s:array[1..5000000] of string;
f1,f2:array[1..2,1..1000000] of integer;begin
ok:=true; b1:=1; b2:=1;
repeat
a2:=a2+1;
readln(s1);
a1:=pos('E',s1);
if a1=0 then
begin
s[a2]:=s1;
end
else
begin
s1:=copy(s1,1,a1-1);
s[a2]:=s1;
ok:=false;
l:=a2;
end;
until ok=false;
for a1:=1 to l do
begin
for a2:=1 to length(s[a1]) do
begin
if s[a1][a2]='W' then
begin
f1[1,b1]:=f1[1,b1]+1;
f2[1,b2]:=f2[1,b2]+1;end;
if s[a1][a2]='L' then
begin
f1[2,b1]:=f1[2,b1]+1;
f2[2,b2]:=f2[2,b2]+1;
end;
if (abs(f1[1,b1]-f1[2,b1])>1)and((f1[1,b1]>=11)or(f1[2,b1]>=11)) then
b1:=b1+1;
if (abs(f2[1,b2]-f2[2,b2])>1)and((f2[1,b2]>=21)or(f2[2,b2]>=21)) then
b2:=b2+1;
end;
end;
for a1:=1 to b1 do writeln(f1[1,a1],':',f1[2,a1]);
writeln;
for a1:=1 to b2 do writeln(f2[1,a1],':',f2[2,a1]);
end. -
02009-08-16 20:00:18@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms此题WA了2遍,吐血.....
阴险之处有二
1 E可能第一个出现,所以要特殊判断
2 如果最后一行为11:11或21:21 还要再输出一个0:0(下局比赛刚开始) -
02009-08-15 21:52:14@
var
s:array[1..600000]of char;
x,y,x1,y1,i,m:longint;
ch:char;
beginrepeat
read(ch);
if (ch='E') or (ch='L') or (ch='W') then
begininc(m);
s[m]:=ch;
end;
until ch='E';for i:=1 to m do
begin
if s[i]='E' then writeln(x,':',y);
if s[i]='W' then inc(x)
else inc(y);
if( (x>=11) or (y>=11) )and(abs(x-y)>=2) then
begin
writeln(x,':',y);
x:=0;y:=0
end;
end;
writeln;
x1:=0;y1:=0;
for i:=1 to m do
beginif s[i]='E' then writeln(x1,':',y1);
if s[i]='W' then inc(x1)else inc(y1);
if 这儿 的括号要 打上( (x1>=21) or (y1>=21) )and(abs(x1-y1)>=2)then
begin
writeln(x1,':',y1);
x1:=0;y1:=0
end
end
end.
搞死我了
郁闷
两对括号 UN 了N遍啊! 我的通过率!!!呜呜
交了N遍才AC啊! -
02009-08-15 21:01:37@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
s,t:array [1..100000] of char;
ch:char;
i,j,k,l,w:longint;
n:int64;
begin
read(ch);
n:=0;
while ch'E' do
begin
if (ch='W')or(ch='L') then
begin
inc(n);
s[n]:=ch;
end;
read(ch);
end;
w:=0;
l:=0;
if(n=0) then
begin
writeln('0:0');
writeln;
write('0:0');
end;
for i:=1 to n do
begin
if s[i]='W' then inc(w)
else inc(l);
if ((w>=11)or(l>=11))and((w-2>=l)or(l-2>=w))or(i=n) then
begin
writeln(w,':',l);
if (i=n)and((w>=11)or(l>=11))and((w-2>=l)or(l-2>=w)) then write('0:0');
w:=0;
l:=0;
end;
end;
writeln;
for i:=1 to n do
begin
if s[i]='W' then inc(w)
else inc(l);
if ((w>=21)or(l>=21))and((w-2>=l)or(l-2>=w))or(i=n) then
begin
writeln(w,':',l);
if (i=n)and((w>=21)or(l>=21))and((w-2>=l)or(l-2>=w)) then write('0:0');
w:=0;
l:=0;
end;
end;
end.秒杀……
-
02009-08-15 20:54:28@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar s:array[1..100000]of char;
ch:char;
n,i,j,l,r,x,y:longint;begin
read(ch);
while ch'E' do
begin
if ch in ['W','L'] then
begin
inc(r);
s[r]:=ch;
end;
read(ch);
end;if r=0 then
begin
for i:=1 to 2 do
writeln('0:0');
end
else
for i:=1 to r do
begin
if s[i]='W' then inc(x)
else inc(y);
if ((x>=11)or(y>=11))and(abs(x-y)>=2)or(i=r) then
begin
writeln(x,':',y);
if (i=r)and((x>=11)or(y>=11))and(abs(x-y)>=2) then writeln('0:0');
x:=0;
y:=0;
end;
end;
writeln;
for i:=1 to r do
begin
if s[i]='W' then inc(x)
else inc(y);
if ((x>=21)or(y>=21))and(abs(x-y)>=2)or(i=r) then
begin
writeln(x,':',y);
if (i=r)and((x>=21)or(y>=21))and(abs(x-y)>=2) then writeln('0:0');
x:=0;
y:=0;
end;
end;
end. -
02009-08-15 17:28:09@
这还容易,难度还只有1,程序却这么长5555555
-
02009-08-05 16:12:20@
审题!
55555~~~~(>_ -
02009-07-26 17:18:03@
交了3次终于AC,一个ansistring竟还装不了全部输入数据
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar s:array[1..1000000] of char;
tmp:string;
b:boolean;
c,w,l,temp,d,last,lengths:longint;begin
b:=true;
lengths:=0;
while b do
begin
readln(tmp);
if pos('E',tmp)0 then
begin
delete(tmp,pos('E',tmp),255);
b:=false;
end;
while pos(' ',tmp)0 do
delete(tmp,pos(' ',tmp),1);
for c:=1 to length(tmp) do
begin
lengths:=lengths+1;
s[lengths]:=tmp[c];
end;
end;
b:=true;
last:=1;
while b do
begin
w:=0;
l:=0;
for d:=last to lengths do
begin
if s[d]='W' then w:=w+1;
if s[d]='L' then l:=l+1;
if ((w>=11)or(l>=11))and(abs(w-l)>=2) then break;
end;
last:=d+1;
writeln(w,':',l);
if last>lengths then b:=false;
if ((w>=11)or(l>=11))and(abs(w-l)>=2)and(b=false) then
writeln('0:0');
end;
writeln;
b:=true;
last:=1;
while b do
begin
w:=0;
l:=0;
for d:=last to length(s) do
begin
if s[d]='W' then w:=w+1;
if s[d]='L' then l:=l+1;
if ((w>=21)or(l>=21))and(abs(w-l)>=2) then break;
end;
last:=d+1;
writeln(w,':',l);
if last>length(s) then b:=false;
if ((w>=21)or(l>=21))and(abs(w-l)>=2)and(b=false) then
writeln('0:0');
end;
end. -
02009-07-26 16:11:09@
貌似在10:11这样的情况下要继续打??。。。
记得是分差超过2分才能判赢的。。。