Submission #1246880

#TimeUsernameProblemLanguageResultExecution timeMemory
1246880sofiefuVision Program (IOI19_vision)C++20
44 / 100
50 ms2548 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 = 2000; rep(_, 0, min(X, (int)test.size())){ auto [i, u] = test[_]; vi op; rep(a, 0, R){ rep(b, 0, C){ int d = abs(i-a) + abs(u-b); if(d==K) op.pb(a*C+b); } } if(op.size()) where[i][u] = add_or(op); } vi last; rep(i, 0, R){ rep(u, 0, C){ if(where[i][u]==-1) continue; vi op = {i*C+u, where[i][u]}; last.pb(add_and(op)); } } add_or(last); } /* 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...