Submission #48248

# Submission time Handle Problem Language Result Execution time Memory
48248 2018-05-11T04:51:39 Z TheDarkning Split the sequence (APIO14_sequence) C++17
71 / 100
467 ms 32252 KB
/**
                  ▄█▀ ▀█▀ ▄▀▄ █▀ █▄█▄█ ▄▀▄ █▀ ▄█▀
                  <⇋⇋⇋⋛∰≓⊂(⌒,_ゝ⌒)⊃≓∰⋛⇋⇋⇋>

            ♔♕♖♗♘♙ ☜❷☞✪ ィℋ६ ≈ ᗫẵℜℵĬŊĞ ✪☜❷☞ ♚♛♜♝♞♟
            ♔♕♖♗♘♙                             ♚♛♜♝♞♟
                      ˙·٠•●♥ Ƹ̵̡Ӝ̵̨̄Ʒ ♥●•٠·˙
7 3
4 1 3 4 0 2 3

**/

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <time.h>
#include <map>
#include <deque>
#include <assert.h>
#include <queue>
#include <string>
#include <memory.h>
#include <set>
#include <math.h>

#define sz(s) s.size()
#define pb emplace_back
#define fr first
#define sc second
#define mk make_pair
#define int long long
#define all(s) s.begin(), s.end()
#define ok puts("ok");

using namespace std;

const int N = 1e4 + 5;
const int inf = 1e18 + 7;

int n, k, ar[N], pref[N], dp[209][N], pr[209][N], last = 1, cur = 1;

main(){
    cin >> n >> k;
    for( int i = 1; i <= n; i++ ){
        cin >> ar[i];
        pref[ i ] = pref[ i - 1 ] + ar[ i ];
    }
    k++;
    last = 1;
    for( int i = 1; i <= k; i++ ){
            cur = 1;
        for( int j = 1; j <= n; j++ ){
            for( int kk = last; kk <= j;kk++ ){
                if( dp[ i ][ j ] <= dp[ i - 1 ][ kk - 1 ] + ( pref[ j ] - pref[ kk - 1 ] ) * ( pref[ n ] - pref[j] )  ){
                    dp[ i ][ j ] = max( dp[ i ][ j ], dp[ i - 1 ][ kk - 1 ] + (pref[j] - pref[kk - 1]) * (pref[n] - pref[j]) );
                    pr[ i ][ j ] = kk - 1;
                    cur = kk;
                }
            }
            last = cur;
        }
    }
    cout << dp[ k ][ n ] << endl;
    while( k > 1 ){
        cout << pr[ k ][ n ] << ' ';
        n = pr[ k ][ n ];
        k--;
    }
}

Compilation message

sequence.cpp:44:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB contestant found the optimal answer: 108 == 108
2 Correct 2 ms 552 KB contestant found the optimal answer: 999 == 999
3 Correct 2 ms 552 KB contestant found the optimal answer: 0 == 0
4 Correct 2 ms 552 KB contestant found the optimal answer: 1542524 == 1542524
5 Correct 2 ms 552 KB contestant found the optimal answer: 4500000000 == 4500000000
6 Correct 2 ms 552 KB contestant found the optimal answer: 1 == 1
7 Correct 2 ms 568 KB contestant found the optimal answer: 1 == 1
8 Correct 2 ms 568 KB contestant found the optimal answer: 1 == 1
9 Correct 2 ms 568 KB contestant found the optimal answer: 100400096 == 100400096
10 Correct 2 ms 568 KB contestant found the optimal answer: 900320000 == 900320000
11 Correct 2 ms 568 KB contestant found the optimal answer: 3698080248 == 3698080248
12 Correct 2 ms 568 KB contestant found the optimal answer: 3200320000 == 3200320000
13 Correct 2 ms 568 KB contestant found the optimal answer: 140072 == 140072
14 Correct 2 ms 568 KB contestant found the optimal answer: 376041456 == 376041456
15 Correct 2 ms 568 KB contestant found the optimal answer: 805 == 805
16 Correct 2 ms 568 KB contestant found the optimal answer: 900189994 == 900189994
17 Correct 2 ms 568 KB contestant found the optimal answer: 999919994 == 999919994
# Verdict Execution time Memory Grader output
1 Correct 2 ms 568 KB contestant found the optimal answer: 1093956 == 1093956
2 Correct 2 ms 572 KB contestant found the optimal answer: 302460000 == 302460000
3 Correct 2 ms 976 KB contestant found the optimal answer: 122453454361 == 122453454361
4 Correct 2 ms 976 KB contestant found the optimal answer: 93663683509 == 93663683509
5 Correct 2 ms 976 KB contestant found the optimal answer: 1005304678 == 1005304678
6 Correct 2 ms 976 KB contestant found the optimal answer: 933702 == 933702
7 Correct 2 ms 976 KB contestant found the optimal answer: 25082842857 == 25082842857
8 Correct 2 ms 976 KB contestant found the optimal answer: 687136 == 687136
9 Correct 2 ms 976 KB contestant found the optimal answer: 27295930079 == 27295930079
10 Correct 2 ms 976 KB contestant found the optimal answer: 29000419931 == 29000419931
# Verdict Execution time Memory Grader output
1 Correct 2 ms 976 KB contestant found the optimal answer: 610590000 == 610590000
2 Correct 2 ms 976 KB contestant found the optimal answer: 311760000 == 311760000
3 Correct 4 ms 2792 KB contestant found the optimal answer: 1989216017013 == 1989216017013
4 Correct 2 ms 2792 KB contestant found the optimal answer: 1499437552673 == 1499437552673
5 Correct 4 ms 2792 KB contestant found the optimal answer: 1019625819 == 1019625819
6 Correct 4 ms 2792 KB contestant found the optimal answer: 107630884 == 107630884
7 Correct 4 ms 2796 KB contestant found the optimal answer: 475357671774 == 475357671774
8 Correct 2 ms 2796 KB contestant found the optimal answer: 193556962 == 193556962
9 Correct 2 ms 2796 KB contestant found the optimal answer: 482389919803 == 482389919803
10 Correct 3 ms 2796 KB contestant found the optimal answer: 490686959791 == 490686959791
# Verdict Execution time Memory Grader output
1 Correct 4 ms 2796 KB contestant found the optimal answer: 21503404 == 21503404
2 Correct 6 ms 2796 KB contestant found the optimal answer: 140412195 == 140412195
3 Correct 10 ms 5372 KB contestant found the optimal answer: 49729674225461 == 49729674225461
4 Correct 3 ms 5372 KB contestant found the optimal answer: 37485571387523 == 37485571387523
5 Correct 19 ms 5372 KB contestant found the optimal answer: 679388326 == 679388326
6 Correct 15 ms 5372 KB contestant found the optimal answer: 4699030287 == 4699030287
7 Correct 12 ms 5400 KB contestant found the optimal answer: 12418819758185 == 12418819758185
8 Correct 11 ms 5400 KB contestant found the optimal answer: 31093317350 == 31093317350
9 Correct 6 ms 5400 KB contestant found the optimal answer: 12194625429236 == 12194625429236
10 Correct 7 ms 5400 KB contestant found the optimal answer: 12345131038664 == 12345131038664
# Verdict Execution time Memory Grader output
1 Correct 120 ms 5400 KB contestant found the optimal answer: 1818678304 == 1818678304
2 Correct 216 ms 5400 KB contestant found the optimal answer: 1326260195 == 1326260195
3 Correct 366 ms 32252 KB contestant found the optimal answer: 4973126687469639 == 4973126687469639
4 Correct 125 ms 32252 KB contestant found the optimal answer: 3748491676694116 == 3748491676694116
5 Correct 467 ms 32252 KB contestant found the optimal answer: 1085432199 == 1085432199
6 Correct 387 ms 32252 KB contestant found the optimal answer: 514790755404 == 514790755404
7 Correct 364 ms 32252 KB contestant found the optimal answer: 1256105310476641 == 1256105310476641
8 Correct 371 ms 32252 KB contestant found the optimal answer: 3099592898816 == 3099592898816
9 Correct 349 ms 32252 KB contestant found the optimal answer: 1241131419367412 == 1241131419367412
10 Correct 374 ms 32252 KB contestant found the optimal answer: 1243084101967798 == 1243084101967798
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 32252 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -