Помогите!!!!  База данных видеокамер, замеряющих скорости автомобилей содержит N записей о номерах проехавших автомобилей и их скорости в момент съемки. Известна таблица штрафов за превышение допустимой скорости: скорость ...

Помогите!!!!   База данных видеокамер, замеряющих скорости автомобилей содержит 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
Гость
Ответ(ы) на вопрос:
Гость
Где только находят такие задачи О_о ну вот :) 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы