Submission #828271

#TimeUsernameProblemLanguageResultExecution timeMemory
828271AmylopectinPrisoner Challenge (IOI22_prison)C++17
80 / 100
17 ms1492 KiB
#include "prison.h" #include <stdio.h> #include <iostream> #include <vector> #include <algorithm> using namespace std; const int mxn = 1e5 + 10; int thr[mxn] = {}; vector<int> fa; vector<vector<int> > ans; std::vector<std::vector<int>> devise_strategy(int n) { int i,j,cn,cm,fn,fm,cou = 7; thr[0] = 1; for(i=1; i<10; i++) { thr[i] = thr[i-1] * 3; } cou = 7; fa.push_back(0); for(i=1; i<=n; i++) { fa.push_back(1+(i/thr[cou])); } ans.push_back(fa); cou = 8; for(i=1; i<19; i++) { fa.clear(); if(i%3 == 1) { cou --; } cm = (i-1) % 3; if(((i-1)/3) % 2 == 0) { fa.push_back(1); for(j=1; j<=n; j++) { cn = (j % thr[cou+1]) / thr[cou]; if(cn < cm) { fa.push_back(-2); } else if(cn > cm) { fa.push_back(-1); } else { fn = (j % thr[cou]) / thr[cou-1]; fa.push_back(i-cm + 3 + fn); } } } else { fa.push_back(0); for(j=1; j<=n; j++) { cn = (j % thr[cou+1]) / thr[cou]; if(cn < cm) { fa.push_back(-1); } else if(cn > cm) { fa.push_back(-2); } else { fn = (j % thr[cou]) / thr[cou-1]; fa.push_back(i-cm + 3 + fn); } } } ans.push_back(fa); } for(i=0; i<3; i++) { fa.clear(); fa.push_back(1); cm = i; for(j=1; j<=n; j++) { cn = (j % thr[2]) / thr[1]; if(cn < cm) { fa.push_back(-2); } else if(cn > cm) { fa.push_back(-1); } else { fn = (j % thr[1]) / thr[0]; if(fn == 0) { fa.push_back(-2); } else if(fn == 2) { fa.push_back(-1); } else { fa.push_back(22); } } } ans.push_back(fa); } fa.clear(); fa.push_back(0); for(j=1; j<=n; j++) { if(j%3 == 0) { fa.push_back(-1); } else { fa.push_back(-2); } } ans.push_back(fa); return {ans}; }

Compilation message (stderr)

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:13:20: warning: unused variable 'fm' [-Wunused-variable]
   13 |   int i,j,cn,cm,fn,fm,cou = 7;
      |                    ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...