제출 #852235

#제출 시각아이디문제언어결과실행 시간메모리
8522358pete8Gap (APIO16_gap)C++17
30 / 100
39 ms2224 KiB
#include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<unordered_map> #include <queue> #include<cstring> #include<limits.h> #include<cmath> #include<set> #include<algorithm> #include<bitset> #include "gap.h" using namespace std; #define ll long long #define f first #define endl "\n" //#define s second #define pii pair<int,int> #define ppii pair<int,pii> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); using namespace std; #define ll long long const int mxn=1e5,mod=1000000007,lg=20,root=1000,inf=1e18; ll v[mxn+10]; ll findGap(int T,int N){ ll mn,mx; ll ans=1; ll lmn=1,lmx=1e18; if(T==1){ ll j=0; for(ll i=0;i<(N+1)/2;i++){ MinMax(lmn,lmx,&mn,&mx); if(mn==-1)break; v[j++]=mn; v[j++]=mx; lmn=mn+1; lmx=mx-1; } sort(v,v+N); for(int i=1;i<N;i++)ans=max(ans,v[i]-v[i-1]); return ans; } MinMax(1,1e18,&mn,&mx); ans=((mx-mn)/(N-1)+1);//min max gap ll add=ans,cur=mn+1,l,r; while(cur<mx){ MinMax(cur,min(mx,cur+add-1),&l,&r); if(l!=-1)ans=max(ans,l-cur),cur=r; cur+=add; }// 1 2 3 4 5 6 7 8 9 10 return ans; }

컴파일 시 표준 에러 (stderr) 메시지

gap.cpp:30:54: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
   30 | const int mxn=1e5,mod=1000000007,lg=20,root=1000,inf=1e18;
      |                                                      ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...