Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <bits/stdc++.h>
- # define ll long long
- # define fr first
- # define se second
- using namespace std;
- int dp[120][120][10] , a[120];
- vector<int> v;
- int main()
- {
- ll n , i , j , k = 0;
- cin>> n;
- for(i = 0; i<= n + 10; i ++)
- for(j = 0; j <= n + 10; j ++)
- dp[i][j][1] = dp[i][j][0] = 1000000000;
- dp[0][0][0] = 0;
- for(i = 1; i <= n; i ++){
- cin>> a[i];
- for(j = 0; j <= k; j ++){
- if(a[i - 1] > 100){
- if(j == 0){
- //cout <<"sa "<<i<<'\n';
- dp[i][j][0] = min(dp[i][j][0] , dp[i - 1][j][1] + a[i]) ;
- dp[i][j][1] = min(dp[i][j][1] , min(dp[i - 1][j][0] , dp[i - 1][j + 1][1]));
- }
- else{
- dp[i][j][0] = min(dp[i][j][0] , min(dp[i - 1][j - 1][0] + a[i] , dp[i - 1][j][1] + a[i]));
- dp[i][j][1] = min(dp[i][j][1] , min(dp[i - 1][j][0] , dp[i - 1][j + 1][1]));
- }
- }
- else{
- dp[i][j][0] = min(dp[i][j][0] , min(dp[i - 1][j][0] + a[i] , dp[i - 1][j][1] + a[i]));
- dp[i][j][1] = min(dp[i][j][1] , min(dp[i - 1][j + 1][0] , dp[i - 1][j + 1][1]));
- //cout <<i<<' '<<j<<' '<<dp[i][j]<<'\n';
- }
- // cout <<i<<' '<<j<<' '<<dp[i][j][0]<<' '<<dp[i][j][1]<<'\n';
- }
- if(a[i] > 100 && i != n)
- k++;
- }
- int mx = 1000000000 , t1 , nom;
- for(int i = 0; i <= k; i ++){
- // cout << dp[n][i][0]<<' '<<dp[n][i][1]<<'\n';
- int t;
- if(dp[n][i][1] > dp[n][i][0]) t = 0;
- else t = 1;
- if(mx >= min(dp[n][i][1] , dp[n][i][0])){
- mx = min(mx , min(dp[n][i][1] , dp[n][i][0]));
- nom = i;
- t1 = t;
- }
- }
- cout <<mx<<'\n';
- int qol = 0;
- for(i = n; i >= 1; i --){
- //cout <<mx<<' '<<nom<<' '<<t1<<'\n';
- if(t1 == 0 && a[i] > 100) qol++;
- if(t1 == 1) v.push_back(i);
- if(t1 == 1) nom++;
- else mx = mx - a[i];
- if(dp[i - 1][nom - (a[i - 1] > 100)][0] == mx)
- t1 = 0;
- else
- t1 = 1;
- //cout<<t1<<'\n';
- if(a[i - 1] > 100 && t1 == 0)
- nom--;
- }
- //cout << qol<<'\n';
- cout <<qol - v.size()<<' '<< v.size()<<'\n';
- for(i = v.size() - 1; i >= 0; i --)
- cout << v[i]<<'\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement