Submission #290216

#TimeUsernameProblemLanguageResultExecution timeMemory
290216rocks03Vision Program (IOI19_vision)C++14
33 / 100
21 ms24184 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pld pair<long double, int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pb push_back
#define ff first
#define ss second
#define SZ(x) ((int)(x).size())
#define ld long double
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int add_and(vector<int> Ns);

int add_or(vector<int> Ns);

int add_xor(vector<int> Ns);

int add_not(int N);

int H, W;
bool valid(int x, int y){
    return (x >= 0 && x < H && y >= 0 && y < W);
}

const int MAXN = 200*200+1000;
int cnt;
bool vis[MAXN][MAXN];
vector<int> all;

void f(int i, int j, int i2, int j2){
    if(!valid(i2, j2)) return;
    int c1 = W*i+j, c2 = W*i2+j2;
    if(vis[c1][c2] || vis[c2][c1]) return;
    vis[c1][c2] = vis[c2][c1] = true;
    vector<int> v(2);
    v[0] = c1, v[1] = c2;
    add_and(v);
    all.pb(cnt++);
}

void construct_network(int H, int W, int K){
    ::H = H, ::W = W;
    cnt = H*W;
    for(int i = 0; i < H; i++){
        for(int j = 0; j < W; j++){
            for(int k = 0; k <= K; k++){
                int i2, j2;
                i2 = i + k;
                j2 = j + K - k;
                f(i, j, i2, j2);
                j2 = j - (K - k);
                f(i, j, i2, j2);
                i2 = i - k;
                j2 = j + K - k;
                f(i, j, i2, j2);
                j2 = j - (K - k);
                f(i, j, i2, j2);
            }
        }
    }
    add_or(all);
}
#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...