Submission #1216511

#TimeUsernameProblemLanguageResultExecution timeMemory
1216511guagua0407Vision Program (IOI19_vision)C++20
26 / 100
7 ms1732 KiB
#include "vision.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);


void construct_network(int n, int m, int k) {
    vector<int> X(n+m-1),Y(n+m-1);
    for(int x=0;x<n+m-1;x++){
        vector<int> tmp;
        for(int i=0;i<n;i++){
            int j=x-i;
            if(j<0 or j>=m) continue;
            tmp.push_back({i*m+j});
        }
        X[x]=add_or(tmp);
    }
    for(int x=-(m-1);x<n;x++){
        vector<int> tmp;
        for(int i=0;i<n;i++){
            int j=i-x;
            if(j<0 or j>=m) continue;
            tmp.push_back({i*m+j});
        }
        Y[x+m-1]=add_or(tmp);
    }
    auto go=[&](int K){
        int xx,yy;
        {
            vector<int> ok;
            for(int x=0;x+K<n+m-1;x++){
                vector<int> tmp;
                for(int i=x;i<=x+K;i++){
                    tmp.push_back(X[i]);
                }
                ok.push_back(add_and({add_or(tmp),add_not(add_xor(tmp))}));
            }
            xx=add_or(ok);
        }
        {
            vector<int> ok;
            for(int x=0;x+K<n+m-1;x++){
                vector<int> tmp;
                for(int i=x;i<=x+K;i++){
                    tmp.push_back(Y[i]);
                }
                ok.push_back(add_and({add_or(tmp),add_not(add_xor(tmp))}));
            }
            yy=add_or(ok);
        }
        return add_and({xx,yy});
    };
    int a=go(k);
    int b=go(k-1);
    int c=add_not(b);
    add_and({a,c});
}
#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...