Submission #867908

#TimeUsernameProblemLanguageResultExecution timeMemory
867908buczPrisoner Challenge (IOI22_prison)C++17
51.50 / 100
17 ms1648 KiB
//NORMAL #include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define st first #define nd second const int M=1e6+50; //const int MOD=1e9+7; //BUCZ®, 2023 //CZEMU TE ZADANIA ZAWSZE MAJA TAKIE OBVIOUS ROZWIAZANIA //SZUKAC OPTYMALIZACJI!!! int bity_index[10000][10]; void oblicz_bity(){ for(int i=0;i<10000;i++){ int x=i; for(int j=8;j>-1;j--){ bity_index[i][j]=x%3; x=x/3; } bity_index[i][9]=0; } } vector<vector<int>>devise_strategy (int N){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); vector<vector<int>> wynik(30); oblicz_bity(); //int N=12; //for(int i=0;i<10;i++){ //cout << bity_index[192][i]; //} for(int i=0;i<30;i++){ int index = i%10; int bitek = i/10; wynik[i].resize(N+1); wynik[i][0]=index%2; int moj=-1-index%2; int twoj=-2+index%2; for(int j=1; j<=N;j++){ //j=3 (B=3) NA TABLICY ZOBACZYLEM 09 if(j==1)wynik[i][j]=moj; else if(j==N)wynik[i][j]=twoj; //else if(bitek < bity_index[j][index])wynik[i][j]=twoj; else if(bity_index[j][index]>bitek)wynik[i][j]=twoj; else if(bity_index[j][index]<bitek)wynik[i][j]=moj; else { wynik[i][j]=index+1+10*bity_index[j][index+1]; } } } /*for(int i=0;i<30;i++){ for(int j=1; j<=N;j++){ cout << wynik[i][j] << " "; } cout << "\n"; }*/ return wynik; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...