Submission #1229601

#TimeUsernameProblemLanguageResultExecution timeMemory
1229601kaltspielerhyPrisoner Challenge (IOI22_prison)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; const int x = 70; vector<vector<int>> devise_strategy(int N) { vector<vector<int>> s(x+1, vector<int>(N+1)); s[0][0] = 0; for (int A = 1; A <= N; A++) { s[0][A] = (A/1000)+1; } // milliers for (int A = 1; A <= 10; A++) { s[A][0] = 1; int B = 1; while (B <= N) { if (A > ((B/1000)%10)+1) s[A][B] = -2; else if (A == ((B/1000)%10)+1) s[A][B] = ((B/100)%10)+11; else s[A][B] = -1; B++; } } // centaines for (int B = 11; B <= 20; B++) { s[B][0] = 0; int A = 1; while (A <= N) { if (B > ((A/100)%10)+11) s[B][A] = -1; else if (B == ((A/100)%10)+11) s[B][A] = ((A/10)%10)+21; else s[B][A] = -2; A++; } } // dizaines for (int A = 21; A <= 30; A++) { s[A][0] = 1; int B = 1; while (B <= N) { if (A > ((B/10)%10)+21) s[A][B] = -2; else if (A == ((B/10)%10)+21) s[A][B] = (B%10)+31; else s[A][B] = -1; B++; } } // unites for (int B = 31; B <= 40; B++) { s[B][0] = 0; int A = 1; while (A <= N) { if (B > (A%10)+31) s[B][A] = -2; else s[B][A] = -1; A++; } } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...