NOIp2005 第一题 怎么错了??

来源:百度知道 编辑:UC知道 时间:2024/09/20 03:56:38
某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:

1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;

2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;

3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4) 西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5) 班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;

只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。

program p1001;
var n,i,j,max,x,m:longint;
s,name,y,a,b,q:string;
begin
readln(n);max:=0;y:='';
for i:=1 to n do
begin
x:=0;readln(s);s:=s+' ';
j:=pos(' ',s);name:=copy(s,1,j-1);delete(s,1,j);
j:=pos(' ',s);q:=copy(s,1,j-1);delete(s,1,j);
if (q>'90') or (length(q)>2) then x:=x+2000;
j:=pos(

{我不善于看别人的程序~~~请谅解}
我写的虽然有点烂
但应该不会错
program p1001;
var
i,n,m,j,k,top,pop,pot:longint;
st,st1:string;
ch,ch1,ch2:char;
begin
readln(n);
for i:=1 to n do
begin
if i<>1
then begin
read(ch);
read(ch);
end;
while ch<>' ' do
begin
read(ch);
if ch=' '
then break;
st:=st+ch;
end;
read(m);
read(j);
read(ch1);
read(ch1);
read(ch2);
read(ch2);
read(k);
if (m>80) and (k>=1)
then top:=8000+top;
if (m>85) and (j>80)
then top:=4000+top;
if m>90
then top:=top+2000;
if (m>85) and (ch2='Y')
then top:=top+1000;
if (j>80) and (ch1='Y')
then top:=top+850;
if top>pop
then begin
pop:=top;
st1:=st;
end;
pot:=top+pot;
top:=0;
ch:='1';
st:='&#