Cod sursa(job #3264691)

Utilizator dragonpeti53Meszaros Peter dragonpeti53 Data 23 decembrie 2024 13:29:28
Problema Subsecventa de suma maxima Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.86 kb
use std::fs;

fn main () {
    let file = fs::read_to_string("ssm.in").expect("err");

    let mut lines = file.lines();

    lines.next().expect("err badfile");

    let vector: Vec<i32> = lines.next().expect("no content").split_whitespace().map(|s| s.parse().expect("not a number")).collect();

    let mut max: i32 = -2000000000;
    let mut start: i32 = 0; let mut end: i32 = 0; let mut maxstart: i32 = 0; let mut sum: i32 = 0;

    for (index, element) in vector.iter().enumerate() {
        if sum < 0 {
            sum = *element;
            start = index as i32;
        } else {
            sum += *element;
        }
        if max < sum {
            max = sum;
            maxstart = start;
            end = index as i32;
        }
    }
    
    let write = format!("{} {} {}", max, maxstart+1, end+1);

    fs::write("ssm.out", write).expect("err writing");
}