Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- var Str,Strmax,Strmax2:string[52];
- simvol:char;
- i,N,nomer,ball,max,max2,nmax,nmax2:integer;
- Begin
- max:=-1;
- max2:=-1;
- Strmax:='';
- nmax:=0;
- Writeln('Введите количество учеников: ');
- readln(N);
- for i:=1 to N do
- begin
- str:=''; //обнуление строки
- Repeat //считываем до пробела
- read(simvol); //каждый символ
- Str:=Str+simvol; //прибавляем к строке
- Until simvol=' '; //Фамилия считана
- Repeat
- read(simvol);
- Str:=Str+simvol;
- Until simvol=' '; //Имя считано,прибавлено к строке
- read(nomer); //считываем номер
- read(ball); //считываем балл
- if nomer=30 then //нас интересуют ученики только 30 школы
- if ball>max then //если текущий балл больше максимального
- begin
- max2:=max; //бывший максимум-второй максимум
- max:=ball; //максимальный балл-текущий балл
- Strmax2:=strmax; //бывший лучший теперь второй лучший
- Strmax:=Str; //текущий ученик набрал максимальный балл
- nmax2:=nmax;
- nmax:=1; //счетчик самых лучших равен 1
- end
- else
- if ball=max then begin//если текущий балл равен максимальному
- nmax:=nmax+1;
- Strmax2:=str;
- nmax2:=nmax;
- end
- else if ball>max2 then //если текущий балл больше второго лучшего
- begin
- max2:=ball;
- Strmax2:=Str;
- nmax2:=1;
- end
- else if ball=max2 then nmax2:=nmax2+1; //если текущий балл равен 2 лучшему
- end;
- if (nmax=2) or (nmax=1) and (nmax2=1) then //если 2 ученика лучшие
- begin
- writeln(Strmax);
- writeln(Strmax2);
- end
- else
- if (nmax=1) and (nmax2>1) then writeln(StrMax); //если один лучший
- if nmax>2 then writeln(nmax);//если лучших много
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement