我居然报名参加省队选拔赛了。还有二十几天。
今天是我生日,就从今天开始奋斗吧。
太久没写程序,练了4道水题。
---------------------------------------------
var a:array[0..12]of integer;
i,s,n:longint; f:boolean;
begin
assign(input,'save.in'); reset(input);
assign(output,'save.out'); rewrite(output);
for i:=1 to 12 do readln(a[i]);
n:=0; s:=0; f:=true;
for i:=1 to 12 do
begin
n:=n+300-a[i];
if n<0 then begin f:=false;writeln(-i); break; end;
if n div 100>0 then inc(s,n div 100);
n:=n mod 100;
end;
if f then writeln(s*120+n);
close(input); close(output);
end.
-------------------------------------------
type re=record
qm,bj,lw:integer;
xb,gb:char;
nm:string;
end;
var a:array[0..100]of re;
i,n,s,max,j:longint; nam:string;
procedure init;
var c:char;
begin
assign(input,'scholar.in'); reset(input);
assign(output,'scholar.out'); rewrite(output);
readln(n); max:=-1; s:=0;
for i:=1 to n do
begin
read(c);
a[i].nm:='';
while c<>' ' do
begin
a[i].nm:=a[i].nm+c;
read(c);
end;
read(a[i].qm); read(a[i].bj);
read(c); read(a[i].gb); read(c); read(a[i].xb);
readln(a[i].lw);
j:=0;
if(a[i].qm>80)and(a[i].lw>0)then inc(j,8000);
if(a[i].qm>85)and(a[i].bj>80) then inc(j,4000);
if(a[i].xb='Y')and(a[i].qm>85) then inc(j,1000);
if(a[i].gb='Y')and(a[i].bj>80) then inc(j,850);
if(a[i].qm>90) then inc(j,2000);
if j>max then begin max:=j; nam:=a[i].nm; end;
inc(s,j);
end;
end;
procedure print;
begin
writeln(nam);
writeln(max);
writeln(s);
close(input); close(output);
end;
begin
init;
print;
end.
-------------------------------------------------
var a:array[0..500]of char;
i,j1,j2,k1,r,k2,n,max:longint; b:char;
procedure init;
begin
assign(input,'wrb.in'); reset(input);
assign(output,'wrb.out'); rewrite(output);
readln(n);
for i:=1 to n do begin read(a[i]); a[i+n]:=a[i]; end;
end;
procedure main;
begin
for i:=1 to n+n do
begin
b:=a[i]; r:=i; while b='w' do begin inc(r); b:=a[r]; end;
j1:=i; j2:=i-1; k1:=0; k2:=0;
while(a[j1]=b)or(a[j1]='w')do
begin
inc(j1); inc(k1); if j1>2*n then break;
end;
b:=a[i-1]; r:=i-1; while b='w' do begin dec(r); b:=a[r]; end;
while(a[j2]=b)or(a[j2]='w')do
begin
dec(j2); inc(k2);
if j2<1 then break;
end;
if k1+k2>max then max:=k1+k2;
end;
end;
procedure print;
begin
writeln(max);
close(input); close(output);
end;
begin
init;
main;
print;
end.
------------------------------------------------
var a:array[1..10]of integer;
i,n,s:longint;
begin
for i:=1 to 10 do read(a[i]);
readln; read(n); for i:=1 to 10 do if a[i]<=30+n then inc(s); writeln(s);
end.
------------------------------------------------
以上是线性表的练习题。
看看到4月份我能做多少题。
今天是我生日,就从今天开始奋斗吧。
太久没写程序,练了4道水题。
---------------------------------------------
var a:array[0..12]of integer;
i,s,n:longint; f:boolean;
begin
assign(input,'save.in'); reset(input);
assign(output,'save.out'); rewrite(output);
for i:=1 to 12 do readln(a[i]);
n:=0; s:=0; f:=true;
for i:=1 to 12 do
begin
n:=n+300-a[i];
if n<0 then begin f:=false;writeln(-i); break; end;
if n div 100>0 then inc(s,n div 100);
n:=n mod 100;
end;
if f then writeln(s*120+n);
close(input); close(output);
end.
-------------------------------------------
type re=record
qm,bj,lw:integer;
xb,gb:char;
nm:string;
end;
var a:array[0..100]of re;
i,n,s,max,j:longint; nam:string;
procedure init;
var c:char;
begin
assign(input,'scholar.in'); reset(input);
assign(output,'scholar.out'); rewrite(output);
readln(n); max:=-1; s:=0;
for i:=1 to n do
begin
read(c);
a[i].nm:='';
while c<>' ' do
begin
a[i].nm:=a[i].nm+c;
read(c);
end;
read(a[i].qm); read(a[i].bj);
read(c); read(a[i].gb); read(c); read(a[i].xb);
readln(a[i].lw);
j:=0;
if(a[i].qm>80)and(a[i].lw>0)then inc(j,8000);
if(a[i].qm>85)and(a[i].bj>80) then inc(j,4000);
if(a[i].xb='Y')and(a[i].qm>85) then inc(j,1000);
if(a[i].gb='Y')and(a[i].bj>80) then inc(j,850);
if(a[i].qm>90) then inc(j,2000);
if j>max then begin max:=j; nam:=a[i].nm; end;
inc(s,j);
end;
end;
procedure print;
begin
writeln(nam);
writeln(max);
writeln(s);
close(input); close(output);
end;
begin
init;
print;
end.
-------------------------------------------------
var a:array[0..500]of char;
i,j1,j2,k1,r,k2,n,max:longint; b:char;
procedure init;
begin
assign(input,'wrb.in'); reset(input);
assign(output,'wrb.out'); rewrite(output);
readln(n);
for i:=1 to n do begin read(a[i]); a[i+n]:=a[i]; end;
end;
procedure main;
begin
for i:=1 to n+n do
begin
b:=a[i]; r:=i; while b='w' do begin inc(r); b:=a[r]; end;
j1:=i; j2:=i-1; k1:=0; k2:=0;
while(a[j1]=b)or(a[j1]='w')do
begin
inc(j1); inc(k1); if j1>2*n then break;
end;
b:=a[i-1]; r:=i-1; while b='w' do begin dec(r); b:=a[r]; end;
while(a[j2]=b)or(a[j2]='w')do
begin
dec(j2); inc(k2);
if j2<1 then break;
end;
if k1+k2>max then max:=k1+k2;
end;
end;
procedure print;
begin
writeln(max);
close(input); close(output);
end;
begin
init;
main;
print;
end.
------------------------------------------------
var a:array[1..10]of integer;
i,n,s:longint;
begin
for i:=1 to 10 do read(a[i]);
readln; read(n); for i:=1 to 10 do if a[i]<=30+n then inc(s); writeln(s);
end.
------------------------------------------------
以上是线性表的练习题。
看看到4月份我能做多少题。

