Submission #226248

#TimeUsernameProblemLanguageResultExecution timeMemory
226248bharat2002Split the sequence (APIO14_sequence)C++14
50 / 100
179 ms19712 KiB
/*input 7 3 4 1 3 4 0 2 3 */ #include<bits/stdc++.h> using namespace std; const int N=1e3 + 100; const int mod=1e9 + 7; #define int long long const int inf=1e18; #define pii pair<int, int> #define f first #define s second #define mp make_pair #define FOR(i, n) for(int i=1;i<=n;i++) #define TRACE(x) cerr << #x << " = " << x << endl //Trace prints the name of the variable and the value. int dp[N][N], arr[N], n, k, pref[N], p[N][N]; signed main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>k;pref[0]=0; if(n==1) { cout<<0;return 0; } for(int i=1;i<=n;i++) {cin>>arr[i];pref[i]=arr[i] + pref[i-1];} for(int i=1;i<N;i++) { for(int j=1;j<N;j++) dp[i][j]=0; } for(int i=1;i<=n;i++) { dp[i][1]=pref[i]*(pref[n]-pref[i]); } for(int j=2;j<=k;j++) { for(int i=j;i<=n;i++) { for(int l=j-1;l<i;l++) { int temp=dp[l][j-1] + (pref[i]-pref[l])*(pref[n]-pref[i]); if(dp[i][j]<temp) { dp[i][j]=temp;p[i][j]=l; } } } } int mi, mval=-inf; for(int j=1;j<=n;j++) { if(mval<dp[j][k]) { mi=j;mval=dp[j][k]; } } cout<<mval<<endl; stack<int> st;st.push(mi); while(st.size()<k) { int cur=p[st.top()][k-st.size()+1];st.push(cur); } while(!st.empty()) {cout<<st.top()<<" ";st.pop();} }

Compilation message (stderr)

sequence.cpp: In function 'int main()':
sequence.cpp:60:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(st.size()<k)
        ~~~~~~~~~^~
#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...