제출 #1342620

#제출 시각아이디문제언어결과실행 시간메모리
1342620x93bd0Coins (IOI17_coins)C++20
100 / 100
5 ms580 KiB
#include "coins.h"
#include <cassert>
#include <cstdio>

const int MODMAX = 64;
#define uint unsigned long long

std::vector<int> coin_flips(std::vector<int> b, int c) {
    std::vector<int> lab;
    uint S = 0;
    for (int i = 0; i < 64; i++) {
        if (b[i])
            S ^= i;
    }

    // printf("%d -> %d [%d]\n", S % 64, c, b[(S % 64) - c]);

    bool d = 0;
    for (int i = 0; i < 64; i++) {
        if (((S ^ i) % MODMAX == c)) {
            d = 1;
            b[i] = !b[i];
            lab.push_back(i);
            break;
        }
    }

    if (!d) lab.push_back(0);
    return lab;
}

int find_coin(std::vector<int> b) {
    int S = 0;
    for (int i = 0; i < 64; i++) {
        if (b[i])
            S ^= i;
    }

    return S % MODMAX;
}

컴파일 시 표준 에러 (stderr) 메시지

grader.cpp: In function 'void shuffle(std::vector<int>&)':
grader.cpp:88:23: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<int*, vector<int> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   88 |         random_shuffle(v.begin(), v.end());
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from grader.cpp:5:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...