제출 #1187230

#제출 시각아이디문제언어결과실행 시간메모리
1187230asli_bgGap (APIO16_gap)C++20
100 / 100
43 ms3256 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #include "gap.h" //#define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; typedef deque<int> di; typedef deque<pii> dii; typedef long long ll; typedef tree<pii,null_type,less<pii>,rb_tree_tag, tree_order_statistics_node_update> oset; #define fi first #define se second #define pb push_back #define pf push_front #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl #define carp(a,b) (((a%MOD)*(b%MOD))%MOD) #define topla(a,b) (((a%MOD)+(b%MOD))%MOD) const ll INF=1e18; const int MAXN=5e3+5; const int MOD=1e9+7; ll findGap(int t, int n){ if(t==1){ ll l=0; ll r=1e18; ll mn,mx; int ind=1; vector<ll> a(n+1,0); while(ind<=n+1-ind){ if(l>r) break; MinMax(l,r,&mn,&mx); l=mn; r=mx; if(l==r and l==-1) break; a[ind]=l; a[n+1-ind]=r; l++; r--; ind++; } ll fark=0; FORE(i,1,n) fark=max(fark,a[i+1]-a[i]); return fark; } else{ ll l=0; ll r=1e18; ll mn,mx; MinMax(l,r,&mn,&mx); vector<ll> a; a.pb(mn); a.pb(mx); l=mn+1; r=mx-1; ll sz=(r-l+1)/(n-1); for(ll i=l;i<=r;i+=sz+1){ MinMax(i,i+sz,&mn,&mx); if(mn!=-1) {a.pb(mn);a.pb(mx);} } sort(all(a)); ll fark=0; FORE(i,1,a.size()){ fark=max(fark,a[i]-a[i-1]); } return fark; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...