Cod sursa(job #3264695)

Utilizator dragonpeti53Meszaros Peter dragonpeti53 Data 23 decembrie 2024 13:50:24
Problema Subsecventa de suma maxima Scor 100
Compilator rs Status done
Runda Arhiva educationala Marime 0.96 kb
use std::fs::File;
use std::io::{BufRead, BufReader, Write};

fn main () {
    let file = File::open("ssm.in").expect("err");
    let reader = BufReader::new(file);

    let mut lines = reader.lines();

    lines.next();

    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;
    let mut index = 1;

    let line = lines.next().expect("empty");
    for element in line.expect("err").split_whitespace() {
        let element: i32 = element.parse().expect("not a number");
        if sum < 0 {
            sum = element;
            start = index as i32;
        } else {
            sum += element;
        }
        if max < sum {
            max = sum;
            maxstart = start;
            end = index as i32;
        }
        index += 1;
    }
    
    let mut write = File::create("ssm.out").expect("err opening");

    writeln!(write, "{} {} {}", max, maxstart, end).expect("err writing");
}