Submission #1246911

#TimeUsernameProblemLanguageResultExecution timeMemory
1246911sofiefuVision Program (IOI19_vision)C++20
0 / 100
7 ms1724 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;

#define vo vector
#define pb push_back
#define fi first 
#define se second 
#define all(x) x.begin(), x.end()
typedef vector<signed> vs;
typedef vector<int> vi;
typedef pair<int, int> pii;

#define rep(i, a, b) for(int i=(a); i<(b);i++)
#define repd(i, a, b) for(int i=(b-1); i>=a;i--)
#define pr(x) cerr << #x << " = " << x << endl;
mt19937 mt_rng(chrono::steady_clock::now().time_since_epoch().count());
int rand(int l, int r){
    return uniform_int_distribution<int>(l, r)(mt_rng);
}
int const inf = 1e9, mxn = 1e5+5;
int n, m;

void construct_network(int R, int C, int K){
    vo<vi> where(R, vi(C, -1));

    vo<pii> test;
    rep(i, 0, R){
        rep(u, 0, C){
            test.pb({i, u});
        }
    }
    shuffle(all(test), mt_rng);

    int X = 9998;
    rep(_, 0, min(X, (int)test.size())){
        auto [i, u] = test[_];
        
        int x = i-K, y = u;
        vi op = {i*C+u};
        while(!(x==i && y==u-K)){
            if(x>=0 && x<R && y>=0 && y<C) op.pb(x*C+y);
            x++; y--;
        }
        while(!(x==i+K && y==u)){
            if(x>=0 && x<R && y>=0 && y<C) op.pb(x*C+y);
            x++; y++;
        }
        while(!(x==i && y==u+K)){
            if(x>=0 && x<R && y>=0 && y<C) op.pb(x*C+y);
            x--; y++;
        }
        while(!(x==i-K && y==u)){
            if(x>=0 && x<R && y>=0 && y<C) op.pb(x*C+y);
            x--; y--;
        }
        if(op.size()) where[i][u] = add_xor(op);
    }

    vi last;
    vi op;
    rep(i, 0, R){
        rep(u, 0, C){
            if(where[i][u]==-1) continue;
            op.pb(where[i][u]);
        }
    }
    add_not(add_or(op));
}

/*
1 1 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...