Cod sursa(job #3123256)

Utilizator minecraft4albert pucianu minecraft4 Data 22 aprilie 2023 18:51:49
Problema Subsecventa de suma maxima Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.81 kb
package org.example;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Main {

    static File myFile = new File("ssm.in");
    static Scanner myReader;

    static {
        try {
            myReader = new Scanner(myFile);
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    static FileWriter myWriter;

    static {
        try {
            myWriter = new FileWriter("ssm.out");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }


    public static void main(String[] args) {

        int n;
        int[] v;
        int[] dp;
        int[] startDp;
        int[] endDp;





            n = myReader.nextInt();

            v = new int[n];
            for (int i = 0; i < n; i++) {
                v[i] = myReader.nextInt();
            }

            dp = new int[n];
            dp[0] = v[0];

            startDp = new int[n];
            startDp[0] = 1;

            endDp = new int[n];
            endDp[0] = 1;


        int maximum = dp[0];
        int start = 1;
        int end = 1;

        for (int i = 1; i < n; i++) {
            if (dp[i-1] < 0) {
                dp[i] = v[i];
                startDp[i] = i + 1;
            } else {
                dp[i] = dp[i-1] + v[i];
                startDp[i] = startDp[i-1];
                endDp[i] = i +1;
            }
            if (dp[i] > maximum) {
                maximum = dp[i];
                start = startDp[i];
                end = endDp[i];
            }
        }


        try {
            myWriter.write(maximum + " " + start + " " +  end);
            myWriter.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }





    }
}