Submission #288130

#TimeUsernameProblemLanguageResultExecution timeMemory
288130infinite_iqHighway Tolls (IOI18_highway)C++14
0 / 100
202 ms2632 KiB
#include <bits/stdc++.h> using namespace std ; #define mid (l+r)/2 #define pb push_back typedef vector < int > vi ; #include "highway.h" int n , m , len ; vi no ; int query ( vi ret ) { vi v ( m , 0 ) ; for ( auto u : ret ) v [u] = 1 ; return ask (v) ; } void find_pair ( int N , vi U, vi V , int A , int B ) { n = N , m = U .size () , len = query ( no ) / A ; int l = 0 , r = n - 1 ; // cout << len << endl ; while ( r - l > len ) { // cout << l << " " << r << " " << mid << " " ; vi ret ; for ( int i = mid ; i < r ; i ++ ) ret .pb ( i ) ; int cost = query ( ret ) ; // cout << cost << endl ; if ( cost == len * A ) { r = mid ; } else if ( cost == len * B ) { l = mid ; } else { for ( int i = 1 ; i <= mid - l ; i ++ ) { if ( i * A + ( len - i ) * B == cost ) { l = mid - i , r = mid + len - i ; } } } } // cout << l << " " << r << endl ; answer ( l , r ) ; }
#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...