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

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

Похоже, что на codeforces в компиляторе haskell Int - 32 битный: в этой задаче, посылка 528293(у меня не получилось получить ссылку на посылку, кто-нибудь подскажет, как это делать?) получается переполнение на 16 тесте, после изменения Int на Integer(он произвольной точности), посылка 528297 - проходит. По стандарту вроде написано что должно быть хотя бы -2^29..2^29 - 1, но все же, может, можно явно указать это при компиляции и поставить на codeforces. Попытался найти как это сделать - не получилось. Может тут есть знатоки haskell, которые знают?


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

13 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

я конечно в Haskell ноль, но замечу. 

если вы написали, что по стандарту должно быть хотя бы -2^29...2^29-1 ( хотя, наверное, -2^31...2^31-1 ), то все равно в той задаче у вас будет переполнение. 

так как 10^9 > 2^29 --> 2^29 * 2^29 = 2^58

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

    Именно -2^29..2^29-1 минимум, в документации написано - да, мне тоже странной показалась 29 степень, но это так.
    Переполнения у меня на компьютере, например, не было, у меня Int 64-битный.
    • 13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      видимо мне вам, увы, не помочь)) не хаскелист х)

      просто думал, что int/integer на всех языках 32-битные)) ( int - c++ , integer - pascal ) 

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

      У Вас, наверное, 64-битная винда. Я прав?

      UPD. И 64-битный компилятор?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        64 битный линукс. Видимо, и компилятор.
        Но, казалось бы, в плюсах int - всегда 32 бит, а long long - 64 бит. Хотя там может быть что-то свое, конечно.
        • 13 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          Так... Компилятор плюсов скольки-битный?

          У 64-битного компилятора int тоже должен быть 64-битный, это однозначно. А на сервере компилятор стоит 32-битный, потому что большинство используют тоже 32-битный.