Submission #49815

#TimeUsernameProblemLanguageResultExecution timeMemory
49815hamzqq9Gap (APIO16_gap)C++14
70 / 100
103 ms3568 KiB
#include "gap.h" #include<bits/stdc++.h> #define lf double #define ll long long #define cc pair<char,char> #define ull unsigned ll #define ii pair<int,int> #define li pair<ll,int> #define iii pair<int,ii> #define iiii pair<ii,ii> #define iiii2 pair<int,iii> #define lii pair<ll,ii> #define lolo pair<ll,ll> #define heap priority_queue #define mp make_pair #define st first #define nd second #define pb push_back #define pf push_front #define ppb pop_back #define ppf pop_front #define all(x) x.begin(),x.end() #define len(x) strlen(x) #define sz(x) (int) x.size() #define orta ((bas+son)/2) #define min3(x,y,z) min(min(x,y),z) #define max3(x,y,z) max(max(x,y),z) #define umin(x,y) x=min(x,y) #define umax(x,y) x=max(x,y) #define dbgs(x) cerr<<(#x)<<" --> "<<(x)<<" " #define dbg(x) cerr<<(#x)<<" --> "<<(x)<<endl;getchar() #define MOD 998244353 #define inf 1000000000000000000ll #define M 10000002 #define LOG 40 #define magic 100 #define KOK 250 #define EPS 0.0025 #define pw(x) ((1ll)<<(x)) #define PI 3.1415926535 using namespace std; long long findGap(int T, int N) { ll ans=0; ll bas,son,a1=0,a2=inf; vector<ll> possible; if(T==2) { MinMax(0,inf,&bas,&son); ll ratio=(son-bas-1)/(N-1)+((son-bas-1)%(N-1)>0); possible.pb(bas); for(int i=1;i<N;i++) { ll v1,v2; MinMax(bas+ratio*(i-1)+1,bas+ratio*i,&v1,&v2); if(v1!=-1) { if(v1!=v2 || (sz(possible) && possible.back()!=v1)) possible.pb(v1); possible.pb(v2); } } if(possible.back()!=son) possible.pb(son); } else { while(a1<=a2) { MinMax(a1,a2,&bas,&son); if(bas==-1) break ; possible.pb(bas); if(bas!=son) possible.pb(son); a1=bas+1; a2=son-1; } sort(all(possible)); } for(int i=0;i<sz(possible)-1;i++) { umax(ans,possible[i+1]-possible[i]); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...