제출 #1105091

#제출 시각아이디문제언어결과실행 시간메모리
1105091fve5죄수들의 도전 (IOI22_prison)C++17
54.50 / 100
11 ms1532 KiB
#include <bits/stdc++.h> #include "prison.h" using namespace std; vector<vector<int>> devise_strategy(int N) { vector<vector<int>> ans; auto rec = [&](auto &&rec, int l, int r, int pl, int pr, bool fst, int st) -> void { if (ans.size() <= st) ans.resize(st + 1, vector<int>(N + 1)); ans[st][0] = !fst; for (int i = pl; i <= l; i++) ans[st][i] = fst ? -1 : -2; for (int i = r - 1; i < pr; i++) ans[st][i] = fst ? -2 : -1; if (r - l <= 2) return; int rec_l = (st + 2) / 3 * 3 + 1; int rec_m = (st + 2) / 3 * 3 + 2; int rec_r = (st + 2) / 3 * 3 + 3; int step = (r - l - 2) / 3; int m1 = l + 1 + step; int m2 = m1 + step; for (int i = l + 1; i < m1; i++) ans[st][i] = rec_l; for (int i = m1; i < m2; i++) ans[st][i] = rec_m; for (int i = m2; i < r - 1; i++) ans[st][i] = rec_r; rec(rec, l, m1, l, r, !fst, rec_l); rec(rec, m1, m2, l, r, !fst, rec_m); rec(rec, m2, r, l, r, !fst, rec_r); }; rec(rec, 1, N + 1, 1, N + 1, true, 0); cerr << ans.size() << endl; return ans; }

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

prison.cpp: In instantiation of 'devise_strategy(int)::<lambda(auto:23&&, int, int, int, int, bool, int)> [with auto:23 = devise_strategy(int)::<lambda(auto:23&&, int, int, int, int, bool, int)>&]':
prison.cpp:41:45:   required from here
prison.cpp:9:28: warning: comparison of integer expressions of different signedness: 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
    9 |             if (ans.size() <= st)
      |                 ~~~~~~~~~~~^~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...