제출 #976926

#제출 시각아이디문제언어결과실행 시간메모리
976926LucaIlieVision Program (IOI19_vision)C++17
52 / 100
15 ms2004 KiB
#include "vision.h" #include <bits/stdc++.h> using namespace std; int n, m, k; int cellId( int l, int c ) { if ( l < 0 || c < 0 || l >= n || c >= m ) return -1; return l * m + c; } void construct_network( int N, int M, int K ) { n = N, m = M, k = K; int id = n * m; vector<int> ids; int n1 = n, m1 = m; if ( n * m * 2 > 10000 ) n1 = m1 = 1; for ( int l = 0; l < n1; l++ ) { for ( int c = 0; c < m1; c++ ) { vector<int> cells; for ( int dl = 0; dl <= k; dl++ ) { int dc = k - dl; if ( cellId( l - dl, c - dc ) != -1 ) cells.push_back( cellId( l - dl, c - dc ) ); if ( cellId( l + dl, c - dc ) != -1 ) cells.push_back( cellId( l + dl, c - dc ) ); if ( cellId( l - dl, c + dc ) != -1 ) cells.push_back( cellId( l - dl, c + dc ) ); if ( cellId( l + dl, c + dc ) != -1 ) cells.push_back( cellId( l + dl, c + dc ) ); } sort( cells.begin(), cells.end() ); cells.resize( unique( cells.begin(), cells.end() ) - cells.begin() ); if ( cells.empty() ) continue; add_or( cells ); id++; add_and( { id - 1, cellId( l, c ) } ); ids.push_back( id ); id++; } } add_or( ids ); }
#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...