Cod sursa(job #2076460)

Utilizator sebi_andrei2008Lazar Eusebiu sebi_andrei2008 Data 26 noiembrie 2017 17:07:46
Problema Elementul majoritar Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1.7 kb
package com.company;

import java.io.*;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class Main {

    private static Scanner scanner;
    private static PrintWriter printWriter;
    private static final String INPUT_FILE = "elmaj.in";
    private static final String OUTPUT_FILE = "elmaj.out";

    private static void openInput() {
        try {
            scanner = new Scanner(new File(INPUT_FILE));
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
    }

    private static void openOutput() {
        try {
            FileWriter fileWriter = new FileWriter(OUTPUT_FILE);
            printWriter = new PrintWriter(fileWriter);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        openInput();
        openOutput();

        HashMap<Integer, Integer> hashTable = new HashMap<>();
        int x, n;
        n = scanner.nextInt();
        while (scanner.hasNext()) {
            x = scanner.nextInt();
            Integer valueForKeyX = hashTable.get(x);
            if (valueForKeyX != null) {
                hashTable.put(x, valueForKeyX + 1);
            } else {
                hashTable.put(x, 1);
            }
        }

        boolean gasit = false;
        Set<Integer> keys = hashTable.keySet();
        for (Integer key : keys) {
            int val = hashTable.get(key);
            if (val > n/2) {
                printWriter.printf("%d %d", key, val);
                gasit = true;
                break;
            }
        }

        if (!gasit) {
            printWriter.print(-1);
        }

        printWriter.close();
        scanner.close();
    }
}