Submission details
Task:Apple Division
Sender:aalto26aw_003
Submission time:2026-09-02 17:56:36 +0300
Language:C++ (C++20)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.01 sdetails
#9ACCEPTED0.01 sdetails
#10ACCEPTED0.01 sdetails
#11ACCEPTED0.01 sdetails
#12ACCEPTED0.01 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.01 sdetails
#18ACCEPTED0.01 sdetails

Compiler report

input/code.cpp: In function 'long long int cal(long long int, long long int, long long int, const std::vector<long long int>&)':
input/code.cpp:36:13: warning: comparison of integer expressions of different signedness: 'const long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     if (idx >= wt.size()) return sum;
      |         ~~~~^~~~~~~~~~~~

Code

#include <bits/stdc++.h>

// int main() {
//     std::ios_base::sync_with_stdio(false);
//     std::cin.tie(nullptr);
//
//     long long n;
//     std::cin >> n;
//
//     long long sum = 0;
//     std::vector<long long> weights(n);
//     for (long long i = 0; i < n; i++) {
//         std::cin >> weights[i];
//         sum += weights[i];
//     }
//
//     const long long W = (sum + 1) / 2;
//
//     std::vector Matrix(W + 1,std::vector<long long>(n, 0));
//     for(int i = 1; i < n; i++){
//         for(int w = 1; w < W+1; w++){
//             if (weights[i - 1] > w) {
//                 Matrix[w][i] = Matrix[w][i-1];
//             } else {
//                 Matrix[w][i] = std::max(Matrix[w][i-1], Matrix[w-weights[i - 1]][i-1] + weights[i - 1]);
//             }
//         }
//     }
//
//     std::cout << std::abs(sum - 2 * Matrix[W][n - 1]) << std::endl;
//     return 0;
// }

long long cal(const long long idx, const long long W, const long long sum, const std::vector<long long> &wt) {
    if (sum > W) return 0;
    if (idx >= wt.size()) return sum;
    const long long a = cal(idx + 1, W, sum + wt[idx], wt);
    const long long b = cal(idx + 1, W, sum, wt);
    if (std::abs(W - a) < std::abs(W - b)) {
        return a;
    }
    return b;
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);

    long long n;
    std::cin >> n;

    long long sum = 0;
    std::vector<long long> weights(n);
    for (long long i = 0; i < n; i++) {
        std::cin >> weights[i];
        sum += weights[i];
    }

    const long long W = (sum + 1) / 2;

    std::cout << std::abs(sum - 2 * cal(0, W, 0, weights)) << std::endl;
    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: ACCEPTED

input
20
13048212 423374770 19874608 81...

correct output
8231

user output
8231

Test 8

Verdict: ACCEPTED

input
20
314836307 815098885 922742346 ...

correct output
1188

user output
1188

Test 9

Verdict: ACCEPTED

input
20
846261131 196958704 824235264 ...

correct output
11770

user output
11770

Test 10

Verdict: ACCEPTED

input
20
92021619 792314463 937735495 8...

correct output
4453

user output
4453

Test 11

Verdict: ACCEPTED

input
20
452747515 202201476 845758891 ...

correct output
4881

user output
4881

Test 12

Verdict: ACCEPTED

input
20
934033764 747013925 113297529 ...

correct output
5482

user output
5482

Test 13

Verdict: ACCEPTED

input
1
1000000000

correct output
1000000000

user output
1000000000

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: ACCEPTED

input
5
934033764 2 7 4 1

correct output
934033750

user output
934033750

Test 17

Verdict: ACCEPTED

input
20
934033764 747013925 113297529 ...

correct output
5483

user output
5483

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