• Помогите уменьшить время программы, все тесты проходит, проблема только во времени (на языке паскаль)

    var s:string ;
    var k,i:integer;
    begin
    readln(s);
    k:=0;
    for i:=1 to length(s) do
    if s[i]='a' then
    begin
    s[i]:='b';
    k:=k+1;
    end;
    for i:=1 to length(s) do
    if s[i]='A' then
    begin
    s[i]:='B';
    k:=k+1;
    end;
    writeln(s);
    writeln(k);
    end.

Ответы 7

  • Нужно еще.... максимальное ремя программы 2.09 , а эта программа занимает 2.106 Я уже сколько голову ломаю , как это сделать.... ничего в голову не приходит.....
    • Автор:

      makhi
    • 6 лет назад
    • 0
  • Можно узнать, где я могу проверить задачу?
  • https://informatics.msk.ru/mod/statements/view3.php?id=11250&chapterid=112337#1
    • Автор:

      shea
    • 6 лет назад
    • 0
  • Вовсе необязательно было давать ссылку, но ладно
  • В этой тестирующей системе Free Pascal что - то глючит. Оформите программу как консольное приложение Delphi, добавив несколько строк в начало файла и выберите транслятор Delphi 6 Borland, все тесты проходит без проблем. Расширение файла с программой сделайте dpr. program Project1;{$APPTYPE CONSOLE}uses SysUtils;var s: string; i,k: longint; f: text;begin assign(f,'input.txt'); reset(f); k:=0; readln(f,s); close(f); Далее по тексту.
    • Автор:

      cisneros
    • 6 лет назад
    • 0
  • Код (Pascal)

    var

     s: string;

     k, i: integer;

    begin

     readln(s);

     k := 0;

     for i := 1 to length(s) do

       if s[i] = 'a' then

       begin

         s[i] := 'b';

         k := k + 1;

       end

       else if s[i] = 'A' then

       begin

         s[i] := 'B';

         k := k + 1;

       end;

     writeln(s);

     writeln(k);

    end.

    -----------------------------------------

    Файл с решением прикреплён.

    answer img
  • На Паскале если используются переменные типа string, то обработка строки занимает ну ооооочень много времени.  Вместо string лучше использовать массив char.  На скринах приведен пример программ с использованием char.  Символы считывались из файла , размер 20000.  Время работы программ (разницу) оцените сами.

    answer img
    • Автор:

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

Еще вопросы

Войти через Google

или

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

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

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