Submission #852678

#TimeUsernameProblemLanguageResultExecution timeMemory
852678weajinkPrisoner Challenge (IOI22_prison)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; vector<vector<int> > devise_strategy(int N){ int x = 12; //cout<<"Straszny amongier\n"; vector<vector<int> > tab(2*x+1); tab[0].resize(N+1); tab[0][0] = 0; for (int j = 1; j <= N; j++){ if (j&(1<<x)) tab[0][j] = 2*x; tab[0][j] = x; //cout<<0<<" "<<j<<" # "<<tab[0][j]<<"\n"; } for (int i = 1; i <= 2*x; i++){ tab[i].resize(N+1); int ktorybit = (i-1)%x; bool kolorbitu = (i-1)/x; if (!(ktorybit%2)) tab[i][0] = 1; else tab[i][0] = 0; //cout<<i<<" "<<0<<" # "<<tab[i][0]<<"\n"; //cout<<"### "<<ktorybit<<" "<<kolorbitu<<"\n"; for (int j = 1; j <= N; j++){ if (kolorbitu != bool(j&(1<<(ktorybit+1)))){ if (kolorbitu){ if (tab[i][0] == 0) tab[i][j] = -1; else tab[i][j] = -2; }else{ if (tab[i][0] == 0) tab[i][j] = -2; else tab[i][j] = -1; } }else{ if (ktorybit == 0) tab[i][j] = -1; else tab[i][j] = 1+ktorybit-1+x*bool(j&(1<<(ktorybit))); } // cout<<i<<" "<<j<<" # "<<tab[i][j]<<"\n"; } //exit(0); } return tab; } /*int main(){ int N,A,B; cin>>N>>A>>B; vector<vector<int> > strategia = devise_strategy(N); int tablica = 0; while (1){ int ruch = strategia[tablica][0]; int val = 0; if (ruch == 0) val = A; else val = B; int ruch2 = strategia[tablica][val]; cout<<"Tab: "<<tablica<<" ktory: "<<ruch<<" val: "<<val<<" # "<<strategia[tablica][val]<<"\n"; tablica = strategia[tablica][val]; if (ruch2 < 0) exit(0); } }*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...