Cod sursa(job #2384229)

Utilizator arcoC. Nicolae arco Data 20 martie 2019 15:20:29
Problema Elementul majoritar Scor 10
Compilator java Status done
Runda Arhiva educationala Marime 1.53 kb
import java.io.*;
import java.util.*;

public class Main 
{
	private static int readInt(Reader r) throws IOException
	{
		int data = 0;
		int cb;
		while(true)
		{
			cb = r.read();
//			System.out.println("read " + cb);
			if(cb == -1)
				break;
			else if(cb == 13)
				break;
			else if(cb == ' ')
				break;
			else if((char)cb == '\n')
				break;
			else
				data = data * 10 + Character.getNumericValue(cb);
		}
		return data;
	}
	
	public static void main(String []args) throws IOException
	{
		Reader fr = null;
		PrintWriter fw = null;
		try
		{
			fr = new BufferedReader(new FileReader("elmaj.in"));
			fw = new PrintWriter("elmaj.out");
	
			int n = readInt(fr);
			
			// for newline
			readInt(fr);
			
			int count = 1;
			int last = readInt(fr);
			
			for(int i = 1; i < n; i++)
			{
				int t = readInt(fr);
//				System.out.printf("%d %d\n", last, t);
				
				if(count == 0)
				{
					last = t;
					count = 1;
				}
				else
				{
					if(t == last)
						count++;
					else
						count--;
				}
			}
			fr = new BufferedReader(new FileReader("elmaj.in"));
			readInt(fr);
			readInt(fr);
			
			int occ = 0;
			for(int i = 0; i < n; i++)
			{
				if(readInt(fr) == last)
				{
					occ++;
				}
			}
			
			if(occ >= (n / 2 + 1))
				fw.printf("%d %d\n", last, occ);
			else
				fw.println(-1);
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			if(fr != null)
				fr.close();
			if(fw != null)
				fw.close();
		}
	}
}