Submission details
Task:Apple Division
Sender:aalto25a_003
Submission time:2025-09-03 16:56:00 +0300
Language:Rust (2021)
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.01 sdetails
#80.01 sdetails
#90.01 sdetails
#100.01 sdetails
#110.01 sdetails
#120.01 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#170.01 sdetails
#18ACCEPTED0.01 sdetails

Code

use std::cmp::min;
use std::io::{self, Read};

macro_rules! input {
    ($it: expr) => {
        $it.next().unwrap().parse().unwrap()
    };
    ($it: expr, $T: ty) => {
        $it.next().unwrap().parse::<$T>().unwrap()
    };
}
/*
mod classes;
fn main() {
    // println!("{}", "-".repeat(20));
    classes::c02::task1();
    // println!("{}", "-".repeat(20));
}
// */

fn main() {
    task();
}

#[allow(dead_code)]
fn task() {
    let mut buf = String::new();
    io::stdin().read_to_string(&mut buf).unwrap();

    let mut it = buf.split_whitespace();

    let n: usize = input!(it);
    let v: Vec<i32> = (0..n).map(|_| input!(it)).collect();
    let sum = v.iter().sum();
    println!("{}", apple_div(&v, sum, 0, 0));
}

fn apple_div(v: &Vec<i32>, sum_1: i32, sum_2: i32, i: usize) -> i32 {
    if i < v.len() {
        let val_1 = apple_div(v, sum_1, sum_2, i+1);
        let curr = v[i];
        let val_2 = apple_div(v, sum_1 - curr, sum_2 + curr, i+1);
        // println!("{} - {}", val_1, val_2);
        min(val_1, val_2)
    } else {
        if sum_1 > sum_2 { sum_1-sum_2 }
        else {sum_2 - sum_1}
    }
}

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
-2147472943

Test 8

Verdict:

input
20
314836307 815098885 922742346 ...

correct output
1188

user output
-2147469510

Test 9

Verdict:

input
20
846261131 196958704 824235264 ...

correct output
11770

user output
-2147471746

Test 10

Verdict:

input
20
92021619 792314463 937735495 8...

correct output
4453

user output
-2147474311

Test 11

Verdict:

input
20
452747515 202201476 845758891 ...

correct output
4881

user output
-2147478831

Test 12

Verdict:

input
20
934033764 747013925 113297529 ...

correct output
5482

user output
-2147472908

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:

input
20
934033764 747013925 113297529 ...

correct output
5483

user output
-2147472909

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