Submission #293205

#TimeUsernameProblemLanguageResultExecution timeMemory
293205muhammad_hokimiyonVision Program (IOI19_vision)C++14
26 / 100
21 ms2300 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); int n,m; int qur; vector < int > g; map < int , int > ll , rr; map < int , vector < int > > l,r; int o_r( vector < int > v ) { qur += 1; add_or( v ); return qur; } int an_d( vector < int > v ) { qur += 1; add_and( v ); return qur; } int xo_r( vector < int > v ) { qur += 1; add_xor( v ); return qur; } int no_t( int x ) { qur += 1; add_not( x ); return qur; } int foo( int k ) { vector < int > g,ff; for( int i = -(n + m); i <= n + m; i++ ){ bool f = true; vector < int > ask; for( int j = i; j <= i + k; j++ ){ if( l[j].empty() ){ f = false; break; } assert( ll.find(j) != ll.end() ); ask.push_back( ll[j] ); } if( !f )continue; assert( (int)ask.size() == k + 1 ); int x = o_r( ask ); int y = xo_r( ask ); int z = no_t( y ); g.push_back( an_d( {x , z} ) ); } for( int i = -(n + m); i <= n + m; i++ ){ bool f = true; vector < int > ask; for( int j = i; j <= i + k; j++ ){ if( r[j].empty() ){ f = false; break; } assert( rr.find(j) != rr.end() ); ask.push_back( rr[j] ); } if( !f )continue; assert( (int)ask.size() == k + 1 ); int x = o_r( ask ); int y = xo_r( ask ); int z = no_t( y ); ff.push_back( an_d( {x , z} ) ); } return an_d( { o_r( g ), o_r( ff ) } ); } void construct_network(int H, int W, int K) { n = H; m = W; qur = n * m - 1; for( int i = 0; i < n; i++ ){ for( int j = 0; j < m; j++ ){ int x = i - j , y = i + j; l[x].push_back(i * m + j); r[y].push_back(i * m + j); } } for( int i = -(n + m); i <= n + m; i++ ){ if( l[i].empty() )continue; int x = o_r(l[i]); ll[i] = x; } for( int i = -(n + m); i <= n + m; i++ ){ if( r[i].empty() )continue; int x = o_r( r[i] ); rr[i] = x; } int x = foo( K ); int y = foo( K - 1 ); y = no_t( y ); vector < int > f; f.push_back(x); f.push_back(y); an_d(f); }
#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...