Submission details
Task:Apple Division
Sender:aalto26aw_009
Submission time:2026-09-02 16:52:40 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#70.00 sdetails
#80.00 sdetails
#90.00 sdetails
#100.00 sdetails
#110.00 sdetails
#120.00 sdetails
#130.41 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#160.41 sdetails
#170.00 sdetails
#18ACCEPTED0.00 sdetails

Code

#include <iostream>
#include <vector>

using namespace std;


long long memo(vector<vector<long long>> & dp, long long index, long long cap, vector<long long> & apples) {
    //cout << "On index " << index << " capacity: " << cap << '\n';
    if (index<0){
        return 0;
    }
    if (cap<=0){
        return 0;
    }

    if (dp[index][cap]==-1){
        if (cap>=apples[index]){

            dp[index][cap]=max(memo(dp, index-1, cap-apples[index], apples)+apples[index], memo(dp, index-1, cap, apples));
        } else {
            dp[index][cap]=memo(dp, index-1, cap, apples);
        }
    }

    return dp[index][cap];

}

int main(){
    long long n;
    cin >> n;
    vector<long long> apples (n);
    long long sum = 0;
    for (long long i=0; i<n;i++){
        cin >> apples[i];
        sum+=apples[i];
    }



    vector<vector<long long>> dp(n, vector<long long>((sum/2)+1, -1));

    long long group1=memo(dp, n-1, sum/2, apples);
    cout << (sum-group1)-group1 << '\n';

    return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
10
603 324 573 493 659 521 654 70...

correct output
2

user output
2

Test 2

Verdict: ACCEPTED

input
10
952 775 292 702 859 719 65 943...

correct output
1

user output
1

Test 3

Verdict: ACCEPTED

input
10
141 156 14 487 250 230 741 602...

correct output
2

user output
2

Test 4

Verdict: ACCEPTED

input
10
963 359 731 826 599 931 40 86 ...

correct output
4

user output
4

Test 5

Verdict: ACCEPTED

input
10
238 224 861 461 558 860 318 93...

correct output
2

user output
2

Test 6

Verdict: ACCEPTED

input
10
193 848 70 53 864 886 374 31 2...

correct output
1

user output
1

Test 7

Verdict:

input
20
13048212 423374770 19874608 81...

correct output
8231

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 8

Verdict:

input
20
314836307 815098885 922742346 ...

correct output
1188

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 9

Verdict:

input
20
846261131 196958704 824235264 ...

correct output
11770

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 10

Verdict:

input
20
92021619 792314463 937735495 8...

correct output
4453

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 11

Verdict:

input
20
452747515 202201476 845758891 ...

correct output
4881

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 12

Verdict:

input
20
934033764 747013925 113297529 ...

correct output
5482

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 13

Verdict:

input
1
1000000000

correct output
1000000000

user output
(empty)

Test 14

Verdict: ACCEPTED

input
2
1 1

correct output
0

user output
0

Test 15

Verdict: ACCEPTED

input
1
1

correct output
1

user output
1

Test 16

Verdict:

input
5
934033764 2 7 4 1

correct output
934033750

user output
(empty)

Test 17

Verdict:

input
20
934033764 747013925 113297529 ...

correct output
5483

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 18

Verdict: ACCEPTED

input
19
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1

user output
1