Submission #888152

#TimeUsernameProblemLanguageResultExecution timeMemory
888152abcvuitunggioPrisoner Challenge (IOI22_prison)C++17
80 / 100
9 ms1116 KiB
#include "prison.h"
#include <bits/stdc++.h>
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(23,vector <int> (n+1,0));
    for (int i=1;i<=n;i++)
        res[0][i]=(i/pw[7]%3)*7+1;
    for (int i=1;i<22;i++){
        int b=(i-1)%7;
        res[i][0]=b&1^1;
        for (int j=1;j<=n;j++)
            if (j/pw[7-b]%3!=(i-1)/7)
                res[i][j]=(j/pw[7-b]%3<(i-1)/7?-1-res[i][0]:res[i][0]-2);
            else if (b<6)
                res[i][j]=(j/pw[6-b]%3)*7+b+2;
            else{
                if (j%3==0)
                    res[i][j]=-1-res[i][0];
                if (j%3==2)
                    res[i][j]=res[i][0]-2;
                if (j%3==1)
                    res[i][j]=22;
            }
    }
    for (int i=1;i<=n;i++)
        res[22][i]=(i%3?-2:-1);
    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...