Rezultati

Up. imeNalogaJezikRezultatČas oddaje
avokado-2018 Arbitraža Java 0/100Prekoračen čas (TLE) 13. okt '18 @ 13:28

Test Točke Porabljen spomin Porabljen čas Status
#1 11/11 34,340 MiB 0,000 s OK
#2 0/11 67,930 MiB 4,398 s Prekoračen čas
#3 11/11 52,191 MiB 3,455 s OK
#4 11/11 51,852 MiB 0,156 s OK
#5 11/11 53,617 MiB 0,326 s OK
#6 0/11 54,223 MiB 4,387 s Prekoračen čas
#7 0/11 57,789 MiB 4,459 s Prekoračen čas
#8 0/11 38,148 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​46014333141132
<<<EOF>>>
Pravilen izhod:
​1565928990927848
<<<EOF>>>
#9 0/12 35,820 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​1439849706525916
<<<EOF>>>
Pravilen izhod:
​3359183337051000
<<<EOF>>>

Ocenjevani program (resitev4.java):
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class resitev4 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String first = br.readLine();

		String[] splt = first.split(" ");
		
		int n = Integer.parseInt(splt[0]);
		int m = Integer.parseInt(splt[1]);
		int k = Integer.parseInt(splt[2]);
		
		String pravni = br.readLine();

		String[] pravniSplit = pravni.split(" ");
		int[] pravniArray = new int[pravniSplit.length];
		
		for (int i = 0; i < pravniSplit.length; i++) {
			pravniArray[i] = Integer.parseInt(pravniSplit[i]) * (-1);
		}
		
		String politicni = br.readLine();

		String[] politicniSplit = politicni.split(" ");
		int[] politicniArray = new int[politicniSplit.length];
		
		for (int i = 0; i < politicniSplit.length; i++) {
			politicniArray[i] = Integer.parseInt(politicniSplit[i])* (-1);
		}
		
		long[] preracunani = new long[Math.min(pravniSplit.length, politicniSplit.length)];
		
		Arrays.sort(pravniArray);
		Arrays.sort(politicniArray);
		
		for (int i = 0; i < politicniSplit.length; i++) {
			politicniArray[i] *= -1;
		}
		
		for (int i = 0; i < pravniSplit.length; i++) {
			pravniArray[i] *= (-1);
		}

		
		for (int i = 0; i < preracunani.length; i++) {
			preracunani[i] = pravniArray[i] * politicniArray[i];
		}
		
		
		
		long max = 0;
		for(int a = 0; a < k; a++) {
			if (a >= k-a) {
				long tmp = 0;
				int loopTimes = Math.min(k-a, preracunani.length);
				for (int i = 0; i < loopTimes; i++) {
					tmp+=preracunani[i];
				}
				for (int i = loopTimes; i < a; i++) {
					if (i >= pravniArray.length) {
						break;
					}
					tmp+=pravniArray[i];
				}
				tmp *=a;
				if (tmp > max) {
					max = tmp;
//					System.out.println(a + "a - max " + max);
				}
			} else {
				long tmp = 0;
				int loopTimes = Math.min(a, preracunani.length);
				for (int i = 0; i < loopTimes; i++) {
					tmp+=preracunani[i];
				}
//				System.out.println("" + tmp + "tmp b=" + (k-a));
				for (int i = loopTimes; i < k-a; i++) {
					if (i >= politicniArray.length) {
						break;
					}
					tmp+=politicniArray[i];
//					System.out.println("Prištel=" + politicniArray[i]);
				}
				tmp *=k-a;
				if (tmp > max) {
					max = tmp;
//					System.out.println(k-a + "b - max " + max);
				}
			}
		}
		
		System.out.println(max);
		
	}
}