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

Автор zscoder, 11 лет назад, По-английски

Excuse me, how can I generate large inputs to hack solutions?

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

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

You should write a program that generates large input? open "generated input" tab on the hack dialog and submit the program instead of the input.

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

    I mean how could I possibly write it.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +4 Проголосовать: не нравится

      What is it exactly that you're asking about? This way, it sounds as if you don't think you can write any working program at all...

      There is no special trick to writing an input generator, it's just straightforward implementation. Get a suitable random number generator (in C++, srand(seed) and rand()), and print an input in the format described in the problem statement. You can set some bounds (N etc.) to your chosen constant values or generate them randomly...

      Watch out, though: CF input files can only have up to 256 kB, so sometimes you could end up with a useless input!

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

        Oh, it's just like this. Thanks!

      • »
        »
        »
        »
        11 лет назад, # ^ |
        Rev. 12   Проголосовать: нравится -8 Проголосовать: не нравится
        256 kB

        u sure?

        256KB=256000B ~(assuming large ints and one space after a number) 16000 numbers.

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

          In hacks, yes. And that's my point: very often, you can't hack just by taking the largest input, because it exceeds this limit.

          16000 is an underestimate. Integers in CF inputs don't exceed 10 digits, so 23000 with a whitespace after every 10 digits. Even that is an underestimate — most integers will be much smaller. If we take an average of 5 digits+whitespace, we get 42000 numbers, which is not that far from the frequently used bound of 105.