求noip2007普及组复赛试题及答案。
程序学者(输入、输出);
变量a,b,c,id,s:array[1..300]的整数;v:array[0..0]的布尔值;
I,j,k,t,m,n,x,y:整数;
开始
assign(输入,' scholar . in ');
assign(output,' scholar . out ');
复位(输入);重写(输出);
readln(n);
对于i:=1到n do
begin readln(a[i],b[i],c[I]);id[I]:= I;结束;
对于i:=1到n do
s[I]:= a[I]+b[I]+c[I];
对于i:=1到n-1 do
for j:=i to n do
开始
如果s[I]& lt;那么s[j]
开始
t:= s[I];s[I]:= s[j];s[j]:= t;
t:= a[I];a[I]:= a[j];a[j]:= t;
t:= b[I];b[I]:= b[j];b[j]:= t;
t:= c[I];c[I]:= c[j];c[j]:= t;
t:= id[I];id[i]:=id[j]。id[j]:= t;
结束;
如果s[I]= s[j]那么
如果a[I]& lt;那么
开始
t:= s[I];s[I]:= s[j];s[j]:= t;
t:= a[I];a[I]:= a[j];a[j]:= t;
t:= b[I];b[I]:= b[j];b[j]:= t;
t:= c[I];c[I]:= c[j];c[j]:= t;
t:= id[I];id[i]:=id[j]。id[j]:= t;
结束
结束;
for i:=1到5 do
writeln(id[i],' ',a[I]+b[I]+c[I]);
关闭(输入);关闭(输出);
结束。
第二个问题
程序组(输入、输出);
定义变量
s,I,w,n:整数;
答:数组[1..30000]的整数;
过程sort_quick(l,r:整数);
var i,j,x,y:整数;
开始
I:= l;j:= r;
x:= a[(l+r)div 2];
重复
而a[I]& lt;x do公司(一);
而x & lta[j]do dec(j);
如果我& lt=那么j
begin y:= a[I];a[I]:= a[j];a[j]:= y;inc(一);第十届会议;结束;
直到我& gtj;
如果我& ltr然后sort_quick(i,r);
如果我& ltj然后sort_quick(l,j);
结束;
开始
赋值(input,' group . in ');
赋值(output,' group . out ');
复位(输入);重写(输出);
readln(w);readln(n);
对于i:=1到n do
readln(a[I]);
sort_quick(1,n);
I:= 1;s:= 0;
重复
如果a[I]+a[n]& lt;=w然后开始s:= s+1;inc(一);十二月(日);结束
else开始s:= s+1;十二月(日);结束;
直到我& gtn;
书写内容;
关闭(输入);
关闭(输出);
结束。
第三个问题
还没做出来
第四个问题
程序河内(输入,输出);
var n,I:整数;
s:字符串;
函数twox(var ss:string):string;
定义变量
I,j:整数;
sss:字符串;
开始
ss:= ' 0 '+ss;
SSS:= ss;
I:=长度(ss);
for j:=1 to i do
开始
if ss[j+1]>那就4分钟
案例ss[j]
“0”,“5”:SSS[j]:=“1”;
1”,“6”:SSS[j]:=“3”;
2 ',' 7 ':SSS[j]:= ' 5 ';
3 ',' 8 ':SSS[j]:= ' 7 ';
4 ',' 9 ':SSS[j]:= ' 9 ';
结束;
if ss[j+1]& lt;那就5分钟吧
案例ss[j]
“0”,“5”:SSS[j]:=“0”;
1”,“6”:SSS[j]:=“2”;
2 ',' 7 ':SSS[j]:= ' 4 ';
3 ',' 8 ':SSS[j]:= ' 6 ';
4 ',' 9 ':SSS[j]:= ' 8 ';
结束;
结束;
如果sss[1]='0 ',则
开始
SSS[1]:=“”;
删除(sss,1,1);
结束;
twox:= SSS;
结束;
开始
赋值(输入,' Hanoi . in ');
赋值(output,' Hanoi . out ');
复位(输入);重写(输出);
readln(n);
s:= ' 1 ';
对于i:=1到n+1 do
s:= twox(s);
I:=长度(s);
s[I]:= chr(ord(s[I])-2);
书写内容;
关闭(输入);关闭(输出);
结束。