Submission #1015932

#TimeUsernameProblemLanguageResultExecution timeMemory
1015932hotboy2703The Big Prize (IOI17_prize)C++17
Compilation error
0 ms0 KiB
#include "prize.h" #include<bits/stdc++.h> using namespace std; using ll = long long; #define pll pair <ll,ll> #define fi first #define se second #define MP make_pair #define sz(a) (ll((a).size())) #define BIT(mask,i) (((mask) >> (i))&1) #define MASK(i) (1LL << (i)) const ll MAXN = 2e5+100; pll a[MAXN]; ll ans = -1; ll req = 0; void query(ll i){ if (a[i].fi==-1){ vector <int> tmp = ask(i); a[i] = MP(tmp[0],tmp[1]); if (a[i].fi+a[i].se==0)ans = i; } } void solve(ll l,ll r,ll l1,ll r1){ ll k=r1-l1; if (k==0)return; ll mid = (l + r) >> 1; ll id = -1; for (ll i = 0;i < k;i ++){ ll cur_mid = mid + ((i+1)/2) * (i%2?1:-1); query(cur_mid); if (a[cur_mid].fi+a[cur_mid].se==req){ id = i; break; } } if (id==-1)return; ll mid_l,mid_r; ll L,R; if (id%2){ mid_r = mid + ((id+1)/2); mid_l = mid - ((id-1)/2); R = a[mid_r].fi; L = R-id; } else{ mid_r = mid + (id/2); mid_l = mid - (id/2); L = a[mid_l].fi; R = L+id; } solve(l,mid_l-1,l,L); solve(mid_r+1,r,R,r); } int find_best(int n) { memset(a,-1,sizeof a); // req = 3; for (ll i = 0;i < min(500,n);i ++){ query(i); req = max(a[i].fi+a[i].se,req); } solve(0,n-1,req); return ans; }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:56:25: warning: 'void* memset(void*, int, size_t)' writing to an object of type 'struct std::pair<long long int, long long int>' with no trivial copy-assignment [-Wclass-memaccess]
   56 |     memset(a,-1,sizeof a);
      |                         ^
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/vector:60,
                 from prize.h:1,
                 from prize.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:211:12: note: 'struct std::pair<long long int, long long int>' declared here
  211 |     struct pair
      |            ^~~~
prize.cpp:62:17: error: too few arguments to function 'void solve(ll, ll, ll, ll)'
   62 |  solve(0,n-1,req);
      |                 ^
prize.cpp:24:6: note: declared here
   24 | void solve(ll l,ll r,ll l1,ll r1){
      |      ^~~~~