测评机: Xeost[5]
得分: 30分
提交日期: 2008-10-5 17:57:00
有效耗时: 281毫秒
测试结果1: 通过本测试点|有效耗时188:ms
测试结果2: 选手程序运行超过时限
测试结果3: 测试结果错误.错误结果为:qing
hong bai qing huang
正确结果应为:bai
huang hong bai qing
测试结果4: 测试结果错误.错误结果为:qing
hong bai qing huang
正确结果应为:qing
qing huang hong bai
测试结果5: 通过本测试点|有效耗时46:ms
测试结果6: 选手程序运行超过时限
测试结果7: 测试结果错误.错误结果为:hong
qing huang hong bai
正确结果应为:huang
hong bai qing huang
测试结果8: 选手程序运行超过时限
测试结果9: 通过本测试点|有效耗时47:ms
测试结果10: 测试结果错误.错误结果为:hong
qing huang hong bai
正确结果应为:hong
bai qing huang hong
提交代码: program rq122(input,output);
var s:array [1..4] of char;
n,i,j,q:longint;
ch:char;
procedure color(ch:char);
begin
case ch of
’r’:write(’hong’);
’w’:write(’bai’);
’g’:write(’qing’);
’y’:write(’huang’);
end;
end;
begin
read(n);
q:=abs(n);
if q mod 4=0 then q:=1
else q:=0;
s[1]:=’r’;
s[2]:=’w’;
s[3]:=’g’;
s[4]:=’y’;
if n>0 then
for i:=1 to (n div 4)-q do
begin
ch:=s[1];
for j:=1 to 3 do
s[j]:=s[j+1];
s[4]:=ch;
end
else
begin
n:=abs(n);
for i:=1 to (n div 4)-q do
begin
ch:=s[4];
for j:=3 downto 1 do
s[j+1]:=s[j];
s[1]:=ch;
end;
end;
if n mod 4=0 then n:=4
else n:=n mod 4;
color(s[n]);
writeln;
for i:=1 to 3 do
begin color(s[i]);
write(’ ’);
end;
color(s[4]);
end.
纯模拟的策略难道超时?
为什么还有不对的数据呢?
其实有循环...
var a,r:array[1..4]of string;
i,j,n,g,p:longint;
begin
readln(n);
a[1]:=’hong’;
a[2]:=’bai’;
a[3]:=’qing’;
a[4]:=’huang’;
if n mod 4=0 then
begin
g:=4;
p:=n div 4-1;
end
else
begin
g:=n mod 4;
p:=n div 4;
end;
for i:=1 to p mod 4 do
begin
r[1]:=a[2];
r[2]:=a[3];
r[3]:=a[4];
r[4]:=a[1];
a:=r;
end;
writeln(a[g]);
write(a[1]);
for i:=2 to 4 do write(’ ’,a[i]);
end.
谢谢jollwish!
虽然我没看懂你的程序,但我获得了点启发
由于我比较菜鸟,所以在此贴出我恶心的程序
别见笑
program rq122(input,output);
var s:array [0..16] of char=(’g’,’r’,’w’,’g’,’y’,’w’,’g’,’y’,’r’,’g’,’y’,’r’,’w’,’y’,’r’,’w’,’g’);
n,q:longint;
ch:char;
procedure color(ch:char);
begin
case ch of
’r’:write(’hong’);
’w’:write(’bai’);
’g’:write(’qing’);
’y’:write(’huang’);
end;
end;
begin
read(n);
while n<0 do n:=n+16;
color(s[n mod 16]);
writeln;
n:=n mod 16;
if n=0 then n:=16;
q:=(n-1) div 4;
case q of
0:begin
color(’r’);
write(’ ’);
color(’w’);
write(’ ’);
color(’g’);
write(’ ’);
color(’y’);
end;
1:begin
color(’w’);
write(’ ’);
color(’g’);
write(’ ’);
color(’y’);
write(’ ’);
color(’r’);
end;
2:begin
color(’g’);
write(’ ’);
color(’y’);
write(’ ’);
color(’r’);
write(’ ’);
color(’w’);
end;
3:begin
color(’y’);
write(’ ’);
color(’r’);
write(’ ’);
color(’w’);
write(’ ’);
color(’g’);
end;
end;
end.
program zj;
var
a:array [1..4] of string;
i,j:longint;
n:longint;
t:string;
begin
readln(n);
a[1]:='hong';
a[2]:='bai';
a[3]:='qing';
a[4]:='huang';
j:=0;
for i:=1 to n do
begin
j:=j+1;
if j=5 then
begin
t:=a[1];
a[1]:=a[2];
a[2]:=a[3];
a[3]:=a[4];
a[4]:=t;
j:=1;
end;
end;
writeln(a[j]);
writeln(a[1],' ',a[2],' ',a[3],' ',a[4]);
readln;
end.
var
i,k,l:longint;
begin
for i:=1 to 4 do
a[i]:=i;
for i:=1 to 16 do
begin
if i mod 4=1 then a[i+7]:=a[i]
else a[i+3]:=a[i];
end;
while n>16 do n:=n mod 16;
k:=a[n];
if k=1 then write('hong');
if k=2 then write('bai');
if k=3 then write('qing');
if k=4 then write('huang');
writeln;
l:=(n-1) div 4;
if l=0 then write('hong',' ','bai',' ','qing',' ','huang');
if l=1 then write('bai',' ','qing',' ','huang',' ','hong');
if l=2 then write('qing',' ','huang',' ','hong',' ','bai');
if l=3 then write('huang',' ','hong',' ','bai',' ','qing');
end;
这个很清晰。。