Submission #426115

#TimeUsernameProblemLanguageResultExecution timeMemory
426115alishahali1382Vision Program (IOI19_vision)C++17
59 / 100
10 ms1352 KiB
#include "vision.h" #include<bits/stdc++.h> #pragma GCC optimize("O2") using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; #define debug(x) {cerr<<#x<<"="<<x<<"\n";} #define debug2(x, y) {cerr<<"{"<<#x<<", "<<#y<<"}={"<<x<<", "<<y<<"}\n";} #define debugp(p) {cerr<<#p<<"={"<<p.first<<", "<<p.second<<"}\n";} #define debugv(abcd) {cerr<<#abcd<<": ";for (auto dcba:abcd) cerr<<dcba<<", ";cerr<<"\n";} #define pb push_back #define SZ(x) ((int)x.size()) #define all(x) x.begin(), x.end() const int inf=1000001000; // 1e9 const ll INF=10000000010000000; // 1e16 const int mod=1000000007; const int MAXN=100010, LOG=18; int n, m, k; int D[LOG]; inline int get_id(int x, int y){ return x*m+y;} int add_and(int x, int y){ return add_and({x, y});} int add_or(int x, int y){ return add_or({x, y});} int add_xor(int x, int y){ return add_xor({x, y});} void Inc(int c){ for (int i=0; i<LOG; i++){ int carry=add_and(D[i], c); D[i]=add_xor(D[i], c); c=carry; } } void construct_network(int _n, int _m, int _k){ n=_n; m=_m; k=_k; int zero=add_and(0, add_not(0)); int one=add_not(zero); one=one; zero=zero; fill(D, D+LOG, zero); //fucking warnings vi X, Y; for (int i=0; i<n; i++){ vi shit(m); for (int j=0; j<m; j++) shit[j]=get_id(i, j); if (i) shit.pb(X[i-1]); X.pb(add_xor(shit)); } for (int j=0; j<m; j++){ vi shit(n); for (int i=0; i<n; i++) shit[i]=get_id(i, j); if (j) shit.pb(Y[j-1]); Y.pb(add_xor(shit)); } for (int x:X) Inc(x); for (int y:Y) Inc(y); vi shit; for (int i=0; i<LOG; i++){ if (k&(1<<i)) shit.pb(add_xor(zero, D[i])); else shit.pb(add_xor(one, D[i])); } int ted=add_and(shit); debug(ted+1-n*m); }
#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...