제출 #888146

#제출 시각아이디문제언어결과실행 시간메모리
888146abcvuitunggio죄수들의 도전 (IOI22_prison)C++17
0 / 100
1 ms604 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(23,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<22;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<6)
                res[i][j]=(j/pw[6-b]%3)*8+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;
}

컴파일 시 표준 에러 (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...