Submission #478401

#TimeUsernameProblemLanguageResultExecution timeMemory
478401blueVision Program (IOI19_vision)C++17
100 / 100
75 ms5828 KiB
#include "vision.h"
#include <vector>
using namespace std;
int C(int H,int W,int K){
    vector<int> M[450];
    vector<int> O[450];
    for(int i = 0; i < H*W; i++){
        M[i/W+int(i%W)].push_back(i);
        O[i/W-int(i%W)+W-1].push_back(i);
    }
    vector<int> P,Q,R,S,T;
    for(int d=0;d<=H+W-2;d++){
        P.push_back(add_or(M[d]));
        Q.push_back(add_or(P));
        R.push_back(add_or(O[d]));
        S.push_back(add_or(R));
        if(d-K >= 0){
            T.push_back(add_and({P[d], Q[d-K]}));
            T.push_back(add_and({R[d], S[d-K]}));
        }
    }
    return add_or(T);
}
void construct_network(int H, int W, int K){
    if(K==H+W-2)C(H, W, K);
    else add_xor({C(H, W, K),C(H, W, K+1)});
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...