Предмет: Информатика,
автор: ginc
Помогите!!!!
База данных видеокамер, замеряющих скорости автомобилей
содержит N
записей о номерах проехавших автомобилей и их скорости в момент съемки. Известна
таблица штрафов за превышение допустимой скорости:
скорость
Штраф
от 0 до 70
км/ч
Нет штрафа (0 рублей)
от 71 до 80 км/ч
100 рублей
от 81 до 100 км/ч
300 рублей
от 101 до 120 км/ч
1000
рублей
от 121 км/ч
2000
Для каждого зафиксированного камерой номера автомобиля
определить максимальный штраф и вывести список номеров автомобилей в порядке
убывания этого штрафа.
Входные данные
В первой строке входного файла input.txt находится целое
число N (0≤ N ≤100). Следующие N строк входного файла
содержат информацию о проехавших автомобилях: номер автомобиля (строка из 8
маленьких латинских букв и цифр), зафиксированная скорость (целое число от 0 до
250). Данные в строке разделены пробелом.
Выходные данные
В выходном файл output.txt для каждого зафиксированного
автомобиля выведите сначала номер автомобиля, потом через пробел максимальный
штраф. Этот список необходимо вывести в порядке убывания штрафов. При равных
штрафах автомобили выводятся в любом порядке.
Примеры:
input.txt
output.txt
5
a111aa78
150
o000oo00 70
a234bv56 65
a111aa78
110
o00oo00 83
a111aa78
2000
o000oo00
300
a234bv56 0
Ответы
Автор ответа:
0
Где только находят такие задачи О_о ну вот :)
uses crt;
type auto=record
nom:string;
sht:integer;
end; var f,g:text;
a:array[1..100] of auto;
s,s1:string;
n,k,i,j,c,p,r:integer;
x:auto;
begin
clrscr;
assign(f,'input.txt');
reset(f);
assign(g,'output.txt');
rewrite(g);
read(f,n);
readln(f,s);
readln(f,s);
k:=1;
a[k].nom:=copy(s,1,8);
delete(s,1,9);
val(s,a[k].sht,c);
for i:=2 to n do
begin
readln(f,s);
s1:=copy(s,1,8);
delete(s,1,9);
val(s,r,c);
p:=0;
j:=1;
while(j<=k) and(p=0) do
if s1=a[j].nom then
begin
p:=j;
a[p].sht:=a[p].sht+r
end
else j:=j+1;
if p=0 then
begin
k:=k+1;
a[k].nom:=s1;
a[k].sht:=r;
end;
end;
close(f);
for i:=1 to k-1 do
for j:=i+1 to k do
if a[i].sht<a[j].sht then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
for i:=1 to k do
begin
writeln(g,a[i].nom,' ',a[i].sht);
writeln(a[i].nom,' ',a[i].sht);
end;
close(g);
end.
uses crt;
type auto=record
nom:string;
sht:integer;
end; var f,g:text;
a:array[1..100] of auto;
s,s1:string;
n,k,i,j,c,p,r:integer;
x:auto;
begin
clrscr;
assign(f,'input.txt');
reset(f);
assign(g,'output.txt');
rewrite(g);
read(f,n);
readln(f,s);
readln(f,s);
k:=1;
a[k].nom:=copy(s,1,8);
delete(s,1,9);
val(s,a[k].sht,c);
for i:=2 to n do
begin
readln(f,s);
s1:=copy(s,1,8);
delete(s,1,9);
val(s,r,c);
p:=0;
j:=1;
while(j<=k) and(p=0) do
if s1=a[j].nom then
begin
p:=j;
a[p].sht:=a[p].sht+r
end
else j:=j+1;
if p=0 then
begin
k:=k+1;
a[k].nom:=s1;
a[k].sht:=r;
end;
end;
close(f);
for i:=1 to k-1 do
for j:=i+1 to k do
if a[i].sht<a[j].sht then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
for i:=1 to k do
begin
writeln(g,a[i].nom,' ',a[i].sht);
writeln(a[i].nom,' ',a[i].sht);
end;
close(g);
end.
Похожие вопросы
Предмет: Математика,
автор: vasiastarosta7
Предмет: Другие предметы,
автор: cawyna200
Предмет: Физика,
автор: milanavbk
Предмет: Биология,
автор: Vancouver2010
Предмет: Физика,
автор: Карапузик2000