Submission #1052829

#TimeUsernameProblemLanguageResultExecution timeMemory
1052829juicyMemory 2 (JOI16_memory2)C++17
100 / 100
1 ms348 KiB
#include "Memory2_lib.h" #include <bits/stdc++.h> using namespace std; void Solve(int T, int N){ vector<int> cands = {0, 1, 2}, res(2 * N); vector his(2 * N, vector<int>(2 * N, -1)); auto flip = [&](int i, int j) { if (his[i][j] != -1) { return his[i][j]; } return his[i][j] = his[j][i] = Flip(i, j); }; auto extract = [&]() { for (int i = 0; i < cands.size(); ++i) { int x = flip(cands[i], cands[i == 0]); bool flg = 1; for (int j = 0; j < cands.size(); ++j) { if (i ^ j) { flg &= x == flip(cands[i], cands[j]); } } if (flg) { res[cands[i]] = x; swap(cands[i], cands.back()); break; } } cands.pop_back(); }; for (int i = 3; i < 2 * N; ++i) { cands.push_back(i); extract(); } if (N > 1) { extract(); } res[cands[0]] = res[cands[1]] = flip(cands[0], cands[1]); for (int i = 0; i < 2 * N; ++i) { for (int j = i + 1; j < 2 * N; ++j) { if (res[i] == res[j]) { Answer(i, j, res[i]); } } } }

Compilation message (stderr)

memory2.cpp: In lambda function:
memory2.cpp:17:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (int i = 0; i < cands.size(); ++i) {
      |                     ~~^~~~~~~~~~~~~~
memory2.cpp:20:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |       for (int j = 0; j < cands.size(); ++j) {
      |                       ~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...