Submission #716861

#TimeUsernameProblemLanguageResultExecution timeMemory
716861vjudge1Split the sequence (APIO14_sequence)C++17
0 / 100
37 ms48868 KiB
#include <bits/stdc++.h> #define f first #define s second #define ent '\n' #define int long long #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") //typedef long double ld; typedef long long ll; using namespace std; struct node{double x,y;}; //double len(node a,node b) //{return sqrt((a.x-b.x)*(a.x-b.y)+(a.y-b.y)*(a.x-b.y));} struct seg{ int mx1=0,mx2=0,ans=0; }; const string out[2]={"NO\n","YES\n"}; const ll dx[]={0,0,1,-1,-1,1,1,-1}; const ll dy[]={1,-1,0,0,-1,1,-1,1}; const int md=998244353; const int mod=1e9+7; const int mx=1e6+12; const int tst=1e5; const bool T=0; map<pair<int,int>,int> dp[mx]; int pref[mx]; int q[mx]; int n,m,k; int ans=-1; bool kek; int pos; int get(int x){ int sum=0,cal=0,k=m; for(int i=1;i<=n;i++){ sum+=q[i]; if(sum>=x && k>0){ sum-=q[i]; cal+=(pref[n]-pref[i-1])*sum; sum=q[i]; k--; } } if(k>0)kek=1; if(cal>ans){ ans=cal; pos=x; } return cal; } void Press_Fn_with_F11(){ cin>>n>>m; int mx=0; for(int i=1;i<=n;i++)cin>>q[i],mx=max(mx,q[i]); for(int i=1;i<=n;i++)pref[i]=pref[i-1]+q[i]; int l=mx+1,r=1e9; while(r-l>10){ int m1=l+(r-l)/3,m2=r-(r-l)/3; kek=0; int a=get(m1),b=get(m2); if(kek)r=m2-1; else if(get(m1)>get(m2))r=m2-1; else l=m1+1; } for(int i=l;i<=r;i++)get(i); cout<<ans<<ent; int sum=0,k=m; for(int i=1;i<=n;i++){ sum+=q[i]; if(sum>=pos && k>0){ cout<<i-1<<' '; sum=q[i]; k--; } } cout<<ent; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int Ersayin_abi_crush=1; if(T)cin>>Ersayin_abi_crush; for(int i=1;i<=Ersayin_abi_crush;i++){ // cout<<"Case "<<i<<": "; Press_Fn_with_F11(); } }

Compilation message (stderr)

sequence.cpp: In function 'void Press_Fn_with_F11()':
sequence.cpp:67:7: warning: unused variable 'a' [-Wunused-variable]
   67 |   int a=get(m1),b=get(m2);
      |       ^
sequence.cpp:67:17: warning: unused variable 'b' [-Wunused-variable]
   67 |   int a=get(m1),b=get(m2);
      |                 ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...