제출 #161919

#제출 시각아이디문제언어결과실행 시간메모리
161919MvCBigger segments (IZhO19_segments)C++11
37 / 100
536 ms153916 KiB
#pragma GCC target("avx2") #pragma GCC optimization("O3") #pragma GCC optimization("unroll-loops") #include <bits/stdc++.h> #define rc(x) return cout<<x<<endl,0 #define pb push_back #define mkp make_pair #define in insert #define er erase #define fd find #define fr first #define sc second using namespace std; typedef long long ll; typedef long double ld; const ll INF=0x3f3f3f3f3f3f3f3f; const ll llinf=(1LL<<62); const int inf=(1<<30); const int nmax=3e3+50; const int mod=1e9+7; int n,i,nr,j,t,mx[nmax]; ll a[nmax],f[nmax][nmax],pr[nmax]; vector<pair<ll,int> >vc[nmax]; vector<pair<ll,int> >::iterator it; int main() { //freopen("sol.in","r",stdin); //freopen("sol.out","w",stdout); //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; pr[i]=pr[i-1]+a[i]; } for(i=0;i<=n;i++)for(j=0;j<=n;j++)f[i][j]=llinf; f[0][0]=0; vc[0].pb(mkp(0,0)); for(i=1;i<=n;i++) { for(j=i;j<=n;j++) { it=(upper_bound(vc[i-1].begin(),vc[i-1].end(),mkp(pr[j],inf))); if(it!=vc[i-1].begin()) { it--; t=it-vc[i-1].begin(); f[i][j]=pr[j]-pr[mx[t]]; } /*for(t=j-1;t>=0;t--) { if(f[i-1][t]<=pr[j]-pr[t]) { f[i][j]=pr[j]-pr[t]; break; } }*/ if(f[i][j]<llinf)vc[i].pb(mkp(f[i][j]+pr[j],j)); } if(!vc[i].empty()) { sort(vc[i].begin(),vc[i].end()); mx[0]=vc[i][0].sc; } for(j=1;j<(int)vc[i].size();j++)mx[j]=max(mx[j-1],vc[i][j].sc); if(f[i][n]<llinf)nr=max(nr,i); } cout<<nr<<endl; return 0; }

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

segments.cpp:2:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("O3")
 
segments.cpp:3:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("unroll-loops")
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...