Submission #1327535

#TimeUsernameProblemLanguageResultExecution timeMemory
1327535JohanWatching (JOI13_watching)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N = 2e3 + 5;
const int INF = 1e18;
int n, p, q, a[N], dp[N][N];
bool ok(int x){
  memset(dp, 0, sizeof(dp));
  for(int i = 0; i <= p; i++){
    for(int j = 0; j <= q; j++){
      if(i > 0){
        int l = dp[i - 1][j] + 1, r = n;
        int cur = a[l] + x - 1, best1 = n + 1;
        while(r >= l){
          int mid = (l + r) >> 1;
          if(a[mid] > cur){
            best1 = mid;
            r = mid - 1;
          }
          else l = mid + 1;
        }
        dp[i][j] = max({dp[i][j], dp[i - 1][j], best1 - 1});
      }
      if(j > 0){
        int l = dp[i][j - 1] + 1, r = n;
        int cur = a[l] + 2 * x - 1, best2 = n + 1;
        while(r >= l){
          int mid = (l + r) >> 1;
          if(a[mid] > cur){
            best2 = mid;
            r = mid - 1;
          }
          else l = mid + 1;
        }
        dp[i][j] = max({dp[i][j], dp[i][j - 1], best2 - 1});
      }
    }
  }
  return (dp[p][q] == n);
}
signed main(){
  ios_base:sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> p >> q;
  p = min(p, n);
  q = min(q, n);
  for(int i = 1; i <= n; i++)
    cin >> a[i];
  sort(a + 1, a + n + 1);
  int l = 1, r = INF;
  int best = -1;
  while(r >= l){
    int mid = (l + r) >> 1;
    if(ok(mid) == true){
      best = mid;
      r = mid - 1;
    }
    else l = mid + 1;
  }
  cout << best << endl;
}

Compilation message (stderr)

watching.cpp: In function 'int main()':
watching.cpp:42:12: error: 'sync_with_stdio' was not declared in this scope
   42 |   ios_base:sync_with_stdio(0);
      |            ^~~~~~~~~~~~~~~