Submission details
Task:Apple Division
Sender:aalto25a_005
Submission time:2025-09-03 17:00:59 +0300
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#20.00 sdetails
#30.00 sdetails
#40.00 sdetails
#50.00 sdetails
#60.00 sdetails
#70.13 sdetails
#80.13 sdetails
#90.13 sdetails
#100.13 sdetails
#110.14 sdetails
#120.13 sdetails
#130.00 sdetails
#140.00 sdetails
#150.00 sdetails
#160.00 sdetails
#170.13 sdetails
#180.06 sdetails

Code

#include <climits>
#include <cstdint>
#include <iostream>
#include <vector>

int main() {
  int count = 0;
  std::cin >> count;
  std::cout << count << std::endl;
  std::vector<uint64_t> weights(count);

  for (int ii = 0; ii < count; ii++) {
    uint64_t i;
    std::cin >> i;
    weights[ii] = i;
  }

  int realCount = 1 << count;
  std::cout << realCount << std::endl;
  uint64_t mini = INT_MAX;
  for (int ii = 0; ii < count; ii++) {
    std::cout << weights[ii] << " ";
  }
  std::cout << std::endl;

  for (int ii = 0; ii < realCount; ii++) {
    uint64_t right = 0;
    uint64_t left = 0;
    for (int jj = 0; jj < count; jj++) {
      if (ii & (2 << jj)) {
        if (right > weights[jj]) {
          right -= weights[jj];
        } else {
          left += weights[jj];
        }
      } else {
        if (left > weights[jj]) {
          left -= weights[jj];
        } else {
          right += weights[jj];
        }
      }
    }
    // std::cout << left << " " << right << std::endl;
    if (left > right) {
      if (left - right < mini) {
        mini = left - right;
      }
    } else {
      if (right - left < mini) {
        mini = right - left;
      }
    }
  }
  std::cout << mini << std::endl;
}

Test details

Test 1

Verdict:

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

correct output
2

user output
10
1024
603 324 573 493 659 521 654 70...

Test 2

Verdict:

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

correct output
1

user output
10
1024
952 775 292 702 859 719 65 943...

Test 3

Verdict:

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

correct output
2

user output
10
1024
141 156 14 487 250 230 741 602...

Test 4

Verdict:

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

correct output
4

user output
10
1024
963 359 731 826 599 931 40 86 ...

Test 5

Verdict:

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

correct output
2

user output
10
1024
238 224 861 461 558 860 318 93...

Test 6

Verdict:

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

correct output
1

user output
10
1024
193 848 70 53 864 886 374 31 2...

Test 7

Verdict:

input
20
13048212 423374770 19874608 81...

correct output
8231

user output
20
1048576
13048212 423374770 19874608 81...
Truncated

Test 8

Verdict:

input
20
314836307 815098885 922742346 ...

correct output
1188

user output
20
1048576
314836307 815098885 922742346 ...
Truncated

Test 9

Verdict:

input
20
846261131 196958704 824235264 ...

correct output
11770

user output
20
1048576
846261131 196958704 824235264 ...
Truncated

Test 10

Verdict:

input
20
92021619 792314463 937735495 8...

correct output
4453

user output
20
1048576
92021619 792314463 937735495 8...
Truncated

Test 11

Verdict:

input
20
452747515 202201476 845758891 ...

correct output
4881

user output
20
1048576
452747515 202201476 845758891 ...
Truncated

Test 12

Verdict:

input
20
934033764 747013925 113297529 ...

correct output
5482

user output
20
1048576
934033764 747013925 113297529 ...
Truncated

Test 13

Verdict:

input
1
1000000000

correct output
1000000000

user output
1
2
1000000000 
1000000000

Test 14

Verdict:

input
2
1 1

correct output
0

user output
2
4
1 1 
0

Test 15

Verdict:

input
1
1

correct output
1

user output
1
2

1

Test 16

Verdict:

input
5
934033764 2 7 4 1

correct output
934033750

user output
5
32
934033764 2 7 4 1 
934033750

Test 17

Verdict:

input
20
934033764 747013925 113297529 ...

correct output
5483

user output
20
1048576
934033764 747013925 113297529 ...
Truncated

Test 18

Verdict:

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

correct output
1

user output
19
524288
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...