Cod sursa(job #3145280)

Utilizator obsidianMidnight Majesty obsidian Data 14 august 2023 15:57:16
Problema Elementul majoritar Scor 10
Compilator java Status done
Runda Arhiva educationala Marime 1.26 kb
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        int[] a = readData();

        int k = 0;
        int majorCandidate = -1;
        for (int candidate : a) {
            if (k == 0) {
                majorCandidate = candidate;
                k = 1;
            } else if (candidate == majorCandidate) {
                ++k;
            } else {
                --k;
            }
        }
        int cnt = 0;
        for (int candidate : a) {
            if (candidate == majorCandidate) {
                ++cnt;
            }
        }
        PrintWriter pw = new PrintWriter("elmaj.out");
        if (cnt > a.length / 2) {
            pw.println(majorCandidate + " " + cnt);
        } else {
            pw.println("-1");
        }
        pw.flush();
        pw.close();
    }

    private static int[] readData() throws IOException {
        Scanner sc = new Scanner(new FileReader("elmaj.in"));
        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; ++i) {
            a[i] = sc.nextInt();
        }
        sc.close();
        return a;
    }
}