Submission #916528

#TimeUsernameProblemLanguageResultExecution timeMemory
916528Aiperiii구경하기 (JOI13_watching)C++14
0 / 100
1 ms436 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back
signed main(){
   int n,p,q;
   cin>>n>>p>>q;
   vector <int> a(n);
   for(int i=0;i<n;i++)cin>>a[i];
   sort(all(a));
   int l=0,r=1e9;
   while(l+1<r){
      int md=(l+r)/2;
      int pos=0;
      int x=p,y=q;
      while(pos<n){
         auto cnt1=upper_bound(all(a),a[pos]+md-1)-a.begin();
         auto cnt2=upper_bound(all(a),a[pos]+2*md-1)-a.begin();
         if(cnt2-pos>cnt1-pos && y>0){
            y--;
            pos=cnt2;
         }
         else{
            x--;
            pos=cnt1;
         }
      }
      if(x>=0 && y>=0)r=md;
      else l=md;
   }
   cout<<r<<"\n";
   
}

/*
 13 3 2
 33
 66
 99
 10
 83
 68
 19
 83
 93
 53
 15
 66
 75
 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...