Submission #59106


Source Code Expand

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	static Scanner sc = new Scanner(System.in);
	static int N;
	static int[] a, b;
	static long sum;

	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		N = sc.nextInt();
		a = new int[N];
		b = new int[N];
		long max = 0;
		for (int i = 0; i < N; ++i) {
			a[i] = sc.nextInt();
			b[i] = sc.nextInt();
			sum += a[i];
		}
		long ans = 1L << 60;
		for (int i = 0; i < N; ++i) {
			long mv = (long) Math.ceil(1.0 * (b[i] - 1) * sum / a[i]);
			for (long j = mv; j < ans && a[i] * j / sum <= b[i]; ++j) {
				if (possible(j)) {
					ans = Math.min(ans, j);
					break;
				}
			}
		}
		//		long ans = max;
		//		for (long i = max; i >= 0 && System.currentTimeMillis() - start < 1900; --i) {
		//			if (possible(i)) {
		//				ans = i;
		//			}
		//		}
		System.out.println(ans);
	}

	static boolean possible(long m) {
		long[] count = new long[N];
		long all = 0;
		St[] rem = new St[N];
		boolean ok = true;
		for (int i = 0; i < N; ++i) {
			count[i] = a[i] * m / sum;
			all += count[i];
			rem[i] = new St(a[i] * m - count[i] * sum, i);
			if (count[i] < b[i]) ok = false;
		}
		if (ok) return true;
		Arrays.sort(rem);
		for (int i = 0; i < Math.min(m - all, N); ++i) {
			++count[rem[i].i];
		}
		//		System.out.println(m + " " + Arrays.toString(count) + " " + all);
		for (int i = 0; i < N; ++i) {
			if (count[i] < b[i]) return false;
		}
		return true;
	}

	static class St implements Comparable<St> {
		long c;
		int i;

		St(long c, int i) {
			this.c = c;
			this.i = i;
		}

		public int compareTo(St o) {
			if (this.c == o.c) return this.i - o.i;
			if (this.c > o.c) return -1;
			return 1;
		}
	}

}

Submission Info

Submission Time
Task E - 選挙
User tomerun
Language Java (OpenJDK 1.7.0)
Score 50
Code Size 1800 Byte
Status TLE
Exec Time 2046 ms
Memory 63364 KB

Judge Result

Set Name Bubunten All
Score / Max Score 50 / 50 0 / 150
Status
AC × 29
AC × 63
TLE × 29
Set Name Test Cases
Bubunten small01.txt, small02.txt, small03.txt, small04.txt, small05.txt, small06.txt, small07.txt, small08.txt, small09.txt, small10.txt, small11.txt, small12.txt, small13.txt, small14.txt, small15.txt, small16.txt, small17.txt, small18.txt, small19.txt, small20.txt, small21.txt, small22.txt, small23.txt, small24.txt, small25.txt, sample1.txt, sample2.txt, sample3.txt, 20_minimal.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 20_minimal.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, dekai1.txt, dekai2.txt, small01.txt, small02.txt, small03.txt, small04.txt, small05.txt, small06.txt, small07.txt, small08.txt, small09.txt, small10.txt, small11.txt, small12.txt, small13.txt, small14.txt, small15.txt, small16.txt, small17.txt, small18.txt, small19.txt, small20.txt, small21.txt, small22.txt, small23.txt, small24.txt, small25.txt, yabame1.txt, yabame2.txt, yabame3.txt, yabame4.txt
Case Name Status Exec Time Memory
01.txt AC 1947 ms 61304 KB
02.txt TLE 2043 ms 61168 KB
03.txt TLE 2039 ms 63040 KB
04.txt AC 1964 ms 62900 KB
05.txt TLE 2038 ms 61372 KB
06.txt AC 1999 ms 58912 KB
07.txt AC 1905 ms 58476 KB
08.txt TLE 2040 ms 61244 KB
09.txt TLE 2040 ms 61168 KB
10.txt AC 1827 ms 61304 KB
11.txt AC 1768 ms 61288 KB
12.txt AC 1908 ms 63364 KB
13.txt AC 1960 ms 61644 KB
14.txt TLE 2040 ms 61152 KB
15.txt AC 1804 ms 60304 KB
16.txt AC 1963 ms 61316 KB
17.txt AC 1997 ms 61416 KB
18.txt AC 1982 ms 61196 KB
19.txt AC 1971 ms 61416 KB
20.txt AC 1817 ms 61196 KB
20_minimal.txt AC 444 ms 20192 KB
21.txt AC 1873 ms 61336 KB
22.txt AC 1953 ms 61272 KB
23.txt TLE 2039 ms 60408 KB
24.txt TLE 2040 ms 63076 KB
25.txt AC 1993 ms 59112 KB
26.txt TLE 2040 ms 63104 KB
27.txt AC 1827 ms 61400 KB
28.txt TLE 2040 ms 63128 KB
29.txt TLE 2039 ms 61284 KB
30.txt TLE 2039 ms 61092 KB
31.txt AC 1958 ms 61388 KB
32.txt TLE 2044 ms 63356 KB
33.txt TLE 2039 ms 61360 KB
34.txt TLE 2042 ms 61748 KB
35.txt TLE 2039 ms 61144 KB
36.txt AC 1980 ms 61352 KB
37.txt AC 1866 ms 61496 KB
38.txt AC 1976 ms 61408 KB
39.txt TLE 2040 ms 63140 KB
40.txt AC 1956 ms 61320 KB
41.txt AC 1617 ms 63084 KB
42.txt AC 722 ms 41100 KB
43.txt AC 454 ms 20140 KB
44.txt AC 1790 ms 61444 KB
45.txt AC 1470 ms 61352 KB
46.txt AC 1218 ms 60440 KB
47.txt AC 634 ms 37552 KB
48.txt AC 493 ms 20200 KB
49.txt AC 1788 ms 61344 KB
50.txt AC 1523 ms 58836 KB
51.txt TLE 2040 ms 62876 KB
52.txt TLE 2039 ms 61240 KB
53.txt TLE 2042 ms 61444 KB
54.txt TLE 2039 ms 62660 KB
55.txt TLE 2040 ms 61340 KB
56.txt TLE 2039 ms 61720 KB
57.txt TLE 2040 ms 61540 KB
58.txt TLE 2039 ms 61796 KB
59.txt TLE 2039 ms 61604 KB
60.txt TLE 2039 ms 61584 KB
dekai1.txt AC 1153 ms 46508 KB
dekai2.txt AC 1920 ms 60024 KB
sample1.txt AC 450 ms 20144 KB
sample2.txt AC 452 ms 20144 KB
sample3.txt AC 450 ms 20144 KB
small01.txt AC 909 ms 52072 KB
small02.txt AC 496 ms 24340 KB
small03.txt AC 890 ms 51824 KB
small04.txt AC 541 ms 31988 KB
small05.txt AC 459 ms 20144 KB
small06.txt AC 698 ms 38980 KB
small07.txt AC 461 ms 20184 KB
small08.txt AC 962 ms 48960 KB
small09.txt AC 506 ms 24960 KB
small10.txt AC 1203 ms 57696 KB
small11.txt AC 716 ms 41692 KB
small12.txt AC 463 ms 20068 KB
small13.txt AC 1463 ms 62520 KB
small14.txt AC 514 ms 25172 KB
small15.txt AC 1155 ms 51576 KB
small16.txt AC 542 ms 31060 KB
small17.txt AC 466 ms 20176 KB
small18.txt AC 637 ms 36400 KB
small19.txt AC 446 ms 20144 KB
small20.txt AC 893 ms 52020 KB
small21.txt AC 508 ms 27184 KB
small22.txt AC 1033 ms 55848 KB
small23.txt AC 676 ms 38624 KB
small24.txt AC 445 ms 20144 KB
small25.txt AC 717 ms 42236 KB
yabame1.txt TLE 2039 ms 61836 KB
yabame2.txt TLE 2046 ms 62660 KB
yabame3.txt AC 1916 ms 61708 KB
yabame4.txt AC 1985 ms 63168 KB