Submission #1230248

#TimeUsernameProblemLanguageResultExecution timeMemory
1230248inesfiPrisoner Challenge (IOI22_prison)C++20
0 / 100
0 ms324 KiB
#include "prison.h" #include<bits/stdc++.h> using namespace std; #define ll long long struct pos { int logec,etat; void afficher(){ cout<<"log "<<logec<<" etat "<<etat<<endl; } }; const int LOGMAXI=8; vector<vector<int>> strategie; vector<int> binaire; pos nb_vers_pos(int n){ pos a; a.etat=n%3; a.logec=n/3; return a; } int pos_vers_nb(pos n){ int a; a=n.etat; a+=n.logec*3; return a; } void decomp(int n){ binaire.clear(); while (n!=0){ binaire.push_back(n%3); n/=3; } while (binaire.size()!=LOGMAXI){ binaire.push_back(0); } reverse(binaire.begin(),binaire.end()); } vector<vector<int>> devise_strategy(int N) { int nbpos=24; for (int i=0;i<=nbpos;i++){ vector<int> ajout={}; pos act=nb_vers_pos(i); if (act.etat==0 and act.logec==0){ ajout.push_back(0); } else { if (act.logec%2==0){ ajout.push_back(1); } else { ajout.push_back(0); } } for (int j=1;j<=N;j++){ decomp(j); if (act.etat==0 and act.logec==0){ ajout.push_back(pos_vers_nb({0,binaire[0]})); } else if (act.etat==binaire[act.logec]){ if (act.logec==LOGMAXI-1){ ajout.push_back(0); } else { ajout.push_back(pos_vers_nb({act.logec+1,binaire[act.logec+1]})); } } else { if (act.etat<binaire[act.logec]){ if (act.logec%2==0){ ajout.push_back(-1); } else { ajout.push_back(-2); } } else { if (act.logec%2==0){ ajout.push_back(-2); } else { ajout.push_back(-1); } } } } strategie.push_back(ajout); } /*for (int i=0;i<=nbpos;i++){ for (int j=0;j<=N;j++){ cout<<strategie[i][j]<<" "; } cout<<endl; }*/ //nb_vers_pos(21).afficher(); return strategie; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...