제출 #722797

#제출 시각아이디문제언어결과실행 시간메모리
722797n0sk1llGap (APIO16_gap)C++14
64.63 / 100
52 ms1088 KiB
#include <bits/stdc++.h> #define FAST ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cerr.tie(0) #define mp make_pair #define xx first #define yy second #define pb push_back #define pf push_front #define popb pop_back #define popf pop_front #define all(x) x.begin(),x.end() #define ff(i,a,b) for (int i = a; i < b; i++) #define fff(i,a,b) for (int i = a; i <= b; i++) #define bff(i,a,b) for (int i = b-1; i >= a; i--) #define bfff(i,a,b) for (int i = b; i >= a; i--) using namespace std; long double typedef ld; unsigned int typedef ui; long long int typedef li; pair<int,int> typedef pii; pair<li,li> typedef pli; pair<ld,ld> typedef pld; vector<vector<int>> typedef graph; unsigned long long int typedef ull; //const int mod = 998244353; const int mod = 1000000007; //Note to self: Check for overflow #include "gap.h" li solve3v(int n) { li ans=0; li l=-1,r=1'000'000'000'000'000'001ll; ff(i,0,(n+1)/2) { li mn,mx; MinMax(l+1,r-1,&mn,&mx); if (l!=-1) ans=max(ans,max(mn-l,r-mx)); //cout<<": "<<l<<" "<<mn<<" "<<mx<<" "<<r<<endl; l=mn,r=mx; } return max(ans,r-l); } li solve(int n) { li l=-1,r=1'000'000'000'000'000'001ll; li mn,mx; MinMax(l+1,r+1,&mn,&mx); if (n==2) return mx-mn; l=mn,r=mx; li gap=1,maygap; while (true) { maygap=gap; while (true) { maygap=min(maygap,r-l); MinMax(l+1,l+maygap,&mn,&mx); if (mx==-1) maygap*=2; else { gap=max(gap,mn-l); l=mx; break; } } if (l>=r) break; } return gap; } li findGap(int T, int N) { if (T==1) return solve3v(N); return solve(N); } /* 2 4 2 3 6 8 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...