Submission #1210397

#TimeUsernameProblemLanguageResultExecution timeMemory
1210397simona1230Prisoner Challenge (IOI22_prison)C++20
0 / 100
1 ms580 KiB
#include "prison.h" #include <vector> #include <bits/stdc++.h> using namespace std; int pw[10]; int p[5001][10]; void prec() { pw[0]=1; for(int i=1;i<=7;i++) pw[i]=pw[i-1]*3; for(int i=0;i<=5000;i++) { int x=i; for(int j=7;j>=0;j--) { while(x>=pw[j]) { p[i][j]++; x-=pw[j]; } p[i][j]--; } } } std::vector<std::vector<int>> devise_strategy(int n) { prec(); vector<vector<int> > s; for(int i=0;i<=22;i++) { s.push_back({}); for(int j=0;j<=n;j++) s[i].push_back(0); } s[0][0]=0; for(int j=1;j<=n;j++) s[0][j]=7*3+p[j][7]; for(int i=2;i<=22;i++) { int h=i%3; if(h==2)h=-1; int b=i/3; if(i%3==2)b++; if(b%2==1)s[i][0]=1; else s[i][0]=0; for(int j=1;j<=n;j++) { if(h==p[j][b]) { if(b==1) { if(p[j][0]==0)s[i][j]=1; else if(p[j][0]==-1)s[i][j]=-2; else s[i][j]=-1; } else s[i][j]=3*(b-1)+p[j][b-1]; } else { if(b%2==1&&h>p[j][b]||b%2==0&&h<p[j][b])s[i][j]=-2; else s[i][j]=-1; } } } return s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...