• Помогите!!!! 

     База данных видеокамер, замеряющих скорости автомобилей содержит 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

Ответы 1

  • Где только находят такие задачи О_о ну вот :)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.
    • Автор:

      rhys
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years