Блог пользователя Bottom

Автор Bottom, 12 лет назад, По-русски

Что значит данная ошибка? Проверил: 1. Это не деление на 0, т.к в коде нет деления вообще. 2. За пределы массива не вылезаю, т.к массив в разы больше, чем входные данные. 3. Переполнение тоже невозможно. 4. За передел памяти тоже не выхожу. Я тут недавно сижу, но интересно, а нет ли поста с полным описание каждой ошибки? Буду очень благодарен за помощь.

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Ввод/вывод в этой задаче через файлы, а не стандартные потоки.

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

    Спасибо, но не в этом ошибка. Я вывожу через файлы, название такое же, как там написано.

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Есть предложение закинуть этот код на какой-нибудь пастебин, потому что иначе нельзя посмотреть, если не решил задачу.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    program Project55;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    var
         a:array[0..150,0..150] of longint;
         i,j,k,n,max:LongInt;
    begin
      Assign(input,'slalom.in');reset(input);
      assign(output,'slalom.out');Rewrite(Output);
      max:=-100000;
      for i:=0 to 150 do
        for j:=0 to 150 do
          begin
            a[i][j]:=-10000;
          end;
      Readln(n);
      for i:=1 to n do
          for j:=1 to i do
            begin
            read(a[i][j]);
            end;
      for i := 2 to n do
          for j := 1 to i do
            begin
              if a[i-1][j-1]>a[i-1][j] then
                  a[i][j]:=a[i][j]+a[i-1][j-1]
                  else a[i][j]:=a[i][j]+a[i-1][j];
            end;
      for j := 1 to n do
      if (a[n][j] > max) then max:= a[n][j];
      Writeln(max);
    end.
    

    Сообственно и весь код. А вот проблема (Е) http://mirror.codeforces.com/gym/100135/attachments/download/1333/20122013-tryenirovka-spbgu-s-5-dp-1-ru.pdf

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Я заслал вот такой код

      program Project55;
      
      uses
        SysUtils;
      
      var
           a:array[0..150,0..150] of longint;
           i,j,n,max:LongInt;
      begin
        Assign(input,'slalom.in');reset(input);
        assign(output,'slalom.out');Rewrite(Output);
        while true do //
        begin         //
                      // 
        end;          //
        max:=-100000;
        for i:=0 to 150 do
          for j:=0 to 150 do
            begin
              a[i][j]:=-10000;
            end;
        Readln(n);
        for i:=1 to n do
            for j:=1 to i do
              begin
              read(a[i][j]);
              end;
        for i := 2 to n do
            for j := 1 to i do
              begin
                if a[i-1][j-1]>a[i-1][j] then
                    a[i][j]:=a[i][j]+a[i-1][j-1]
                    else a[i][j]:=a[i][j]+a[i-1][j];
              end;
        for j := 1 to n do
        if (a[n][j] > max) then max:= a[n][j];
        Writeln(max);
        close(input);
        close(output);
      end.
      

      Результат ошибка исполнения на тесте 1.

      Похоже проблема с отсутствием файлов. Баг видимо не ваш.

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

Как ни странно, но в этой задаче нужно читать из консоли. Если вы зайдете на вкладку задачи, то слева от кнопки посылки (рядом со звездочкой) можете увидеть откуда надо читать. И там написано "стандартный ввод/вывод". Сам долго мучался с этой ошибкой.