Submission #1245163

#TimeUsernameProblemLanguageResultExecution timeMemory
1245163DeathIsAwePrisoner Challenge (IOI22_prison)C++20
65 / 100
7 ms1360 KiB
#include "prison.h" #include <bits/stdc++.h> using namespace std; #define mp make_pair #define ff first #define ss second #define pb push_back #define ll long long #define ld long double #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") vector<vector<int>> devise_strategy(int n) { vector<vector<int>> ansvec(25); ansvec[0].pb(0); for (int i=1;i<25;i++) { if (i % 2 == 1) ansvec[i].pb(0); else ansvec[i].pb(1); } for (int i=1;i<n+1;i++) { if ((i >> 12) & 1) ansvec[0].pb(12); else ansvec[0].pb(24); } for (int i=1;i<25;i++) { int realval = i % 12; if (realval == 0) realval = 12; bool bit; if (i > 12) bit = false; else bit = true; if (i % 2 == 0) { for (int j=1;j<n+1;j++) { if (bit == (bool)((j >> realval) & 1)) { ansvec[i].pb(12*(((j >> (realval - 1)) & 1) ^ 1) + realval - 1); } else if (!bit) { ansvec[i].pb(-1); } else { ansvec[i].pb(-2); } } } else { for (int j=1;j<n+1;j++) { if (bit == (bool)((j >> realval) & 1)) { if (realval == 1) { if (j & 1) { ansvec[i].pb(-2); } else { ansvec[i].pb(-1); } } else { ansvec[i].pb(12*(((j >> (realval - 1)) & 1) ^ 1) + realval - 1); } } else if (!bit) { ansvec[i].pb(-2); } else { ansvec[i].pb(-1); } } } } return ansvec; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...