Cod sursa(job #2076489)

Utilizator sebi_andrei2008Lazar Eusebiu sebi_andrei2008 Data 26 noiembrie 2017 17:47:13
Problema Elementul majoritar Scor 80
Compilator java Status done
Runda Arhiva educationala Marime 1.94 kb
//package com.company;

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

public class Main {

    private static PrintWriter printWriter;
    private static MyScanner scanner;

    public static void main(String[] args) throws IOException {
        scanner = new MyScanner("elmaj.in");
        printWriter = new PrintWriter("elmaj.out");

        HashMap<Integer, Integer> hashTable = new HashMap<>();
        int x, n;
        n = scanner.nextInt();
        for (int i = 0; i < n; i++) {
            x = scanner.nextInt();
            if (hashTable.containsKey(x)) {
                hashTable.put(x, hashTable.get(x) + 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();
    }

    private static class MyScanner
    {
        private BufferedReader bufferedReader;
        private StringTokenizer stringTokenizer;

        MyScanner(String filename) throws FileNotFoundException {
            bufferedReader = new BufferedReader(new FileReader(filename));
        }

        private String next() throws IOException {
            while(stringTokenizer == null || !stringTokenizer.hasMoreElements()) {
                stringTokenizer = new StringTokenizer(bufferedReader.readLine());
            }
            return stringTokenizer.nextToken();
        }

        int nextInt() throws IOException {
            return Integer.parseInt( next() );
        }

        void close() throws IOException {
            bufferedReader.close();
        }
    }
}