Submission #934960

#TimeUsernameProblemLanguageResultExecution timeMemory
934960thunoproSuper Dango Maker (JOI22_dango3)C++17
7 / 100
139 ms604 KiB
#include<bits/stdc++.h> using namespace std ; #define maxn 200009 #define ll long long #define pb push_back #define fi first #define se second #define left id<<1 #define right id<<1|1 #define re exit(0); #define _lower(x) lower_bound(v.begin(),v.end(),x)-v.begin()+1 const int mod = 1e9+7 ; const int INF = 1e9 ; typedef vector<int> vi ; typedef pair<int,int> pii ; typedef vector<pii> vii ; template < typename T > void chkmin ( T &a , T b ) { if ( a > b ) a = b ; } template < typename T > void chkmax ( T &a , T b ) { if ( a < b ) a = b ; } void add ( int &a , int b ) { a += b ; if ( a >= mod ) a -= mod ; if ( a < 0 ) a += mod ; } void rf () { freopen ("bai1.inp","r",stdin) ; } int _pow ( int a , int n ) { if ( n == 0 ) return 1 ; int res = _pow (a,n/2) ; if ( n % 2 ) return 1ll*res*res%mod*a%mod ; else return 1ll*res*res%mod ; } #include "dango3.h" int n , m ; //int Query ( vi v ) //{ // for ( auto x : v ) cerr << x << " " ; cerr << endl ; // int x ; cin >> x ; return x ; //} //void Answer ( vi v ) //{ // for ( auto x : v ) cerr << x << " " ; cerr << endl ; //} mt19937 rng(23) ; void Calc ( vi v ) { if ( v.empty()) return ; shuffle (v.begin(),v.end(),rng) ; int l = 0 , r = v.size() - 1 , pos ; while ( l <= r ) { int mid = (l+r)/2 ; if ( Query(vi(v.begin(),v.begin()+mid+1)) >= 1 ) pos = mid , r = mid-1 ; else l = mid+1 ; } vi check = vi (v.begin(),v.begin()+pos+1) ; vi remain = vi (v.begin()+pos+1,v.end()) ; while (check.size() > n) { for ( auto x : check ) { vi _check ; for ( auto y : check ) { if ( x != y ) _check . pb (y) ; } if ( Query (_check) == 1 ) { remain . pb (x) ; check = _check ; break ; } } } Answer (check) ; Calc (remain) ; } void Solve ( int N , int M ) { n = N , m = M ; vi v ; for ( int i = 1 ; i <= n*m ; i ++ ) v . pb (i) ; Calc (v) ; } //int main () //{ // ios_base::sync_with_stdio(0); // cin.tie(0);cout.tie(0); //// rf () ; // Solve (3,2) ; //}

Compilation message (stderr)

dango3.cpp: In function 'void Calc(vi)':
dango3.cpp:69:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   69 |  while (check.size() > n)
      |         ~~~~~~~~~~~~~^~~
dango3.cpp: In function 'void rf()':
dango3.cpp:31:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |  freopen ("bai1.inp","r",stdin) ;
      |  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
dango3.cpp: In function 'void Calc(vi)':
dango3.cpp:60:33: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
   60 |  int l = 0 , r = v.size() - 1 , pos ;
      |                                 ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...