Submission #701873

#TimeUsernameProblemLanguageResultExecution timeMemory
701873sudheerays123Split the sequence (APIO14_sequence)C++17
50 / 100
407 ms24732 KiB
#include<bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define ll long long int const ll N = 1000+5 , INF = 1e18 , MOD = 1e9+7; ll dp[N][N],par[N][N]; vector<ll> a(N),presum(N); ll n,k; ll go(ll i , ll j){ if(i == n+1){ if(j == k+1) return 0; return -INF; } if(j > k) return -INF; if(dp[i][j] != -1) return dp[i][j]; ll ans = -INF , ind; for(ll k = i; k <= n; k++){ if((presum[k]-presum[i-1])*(presum[n]-presum[k]) + go(k+1,j+1) > ans){ ans = (presum[k]-presum[i-1])*(presum[n]-presum[k]) + go(k+1,j+1); ind = k; } } par[i][j] = ind; return dp[i][j] = ans; } void solve(){ cin >> n >> k; for(ll i = 1; i <= n; i++){ cin >> a[i]; presum[i] = presum[i-1]+a[i]; } memset(dp,-1,sizeof dp); cout << go(1,0) << "\n"; ll curind = 1 , curk = 0; while(true){ if(curk == k) break; curind = par[curind][curk]; cout << curind << " "; curk++; curind++; } } int main(){ fast; ll tc = 1; // cin >> tc; while(tc--) solve(); return 0; }

Compilation message (stderr)

sequence.cpp: In function 'long long int go(long long int, long long int)':
sequence.cpp:30:12: warning: 'ind' may be used uninitialized in this function [-Wmaybe-uninitialized]
   30 |  par[i][j] = ind;
      |  ~~~~~~~~~~^~~~~
#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...