Submission #888142

#TimeUsernameProblemLanguageResultExecution timeMemory
888142abcvuitunggioPrisoner Challenge (IOI22_prison)C++17
65 / 100
10 ms1116 KiB
#include "prison.h"
#include <vector>
using namespace std;
int pw[10];
vector <vector <int>> devise_strategy(int n){
    pw[0]=1;
    for (int i=1;i<10;i++)
        pw[i]=pw[i-1]*3;
    vector <vector <int>> res(25,vector <int> (n+1,0));
    for (int i=1;i<=n;i++)
        res[0][i]=(i/pw[7]%3)*8+1;
    for (int i=1;i<25;i++){
        int b=(i-1)%8;
        res[i][0]=b&1^1;
        for (int j=1;j<=n;j++)
            if (j/pw[7-b]%3!=(i-1)/8)
                res[i][j]=(j/pw[7-b]%3<(i-1)/8?-1-res[i][0]:res[i][0]-2);
            else if (b<7)
                res[i][j]=(j/pw[6-b]%3)*8+b+2;
    }
    return res;
}

Compilation message (stderr)

prison.cpp: In function 'std::vector<std::vector<int> > devise_strategy(int)':
prison.cpp:14:20: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   14 |         res[i][0]=b&1^1;
      |                   ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...