Submission #59001
Source Code Expand
import java.util.Arrays; import java.math.BigDecimal; import java.util.Scanner; public class Main { static long[] a; static long[] b; static long s = 0; static int n; //static void test(){ // System.out.println(3.999 - (long)3.999); //} public static void main(String[] args) { doIt(); //test(); } static void doIt(){ Scanner sc = new Scanner(System.in); n = sc.nextInt(); a = new long[n]; b = new long[n]; for(int i = 0; i < n; i++){ a[i] = sc.nextInt(); b[i] = sc.nextLong(); } for(long aa : a) s += aa; System.out.println(binSearch(0, 1000000000000000000L)); //System.out.println(binSearch(0, 100)); } static long binSearch(long min, long max){ long ret = 0; long t = (min + max) / 2; boolean res = alloc(t); if(res) if(max == t) if(alloc(min)) ret = min; else ret = t; else ret = binSearch(min, t); else if(min == t) ret = max; else ret = binSearch(t, max); return ret; } static boolean alloc(long m){ boolean ret = true; long[] cand = new long[n]; CAT[] ary = new CAT[n]; long tm = m; for(int i = 0; i < n; i++){ //double t = 0; BigDecimal ta = BigDecimal.valueOf( a[i] ); BigDecimal tmm = BigDecimal.valueOf( m ); BigDecimal ts = BigDecimal.valueOf( s ); //BigDecimal t = (double)a[i] * (double)m / (double)s; BigDecimal t = (ta.multiply(tmm)); //t = t.divide(ts, 40, BigDecimal.ROUND_HALF_EVEN); //t = (double)a[i] * (double)m / (double)s; //cand[i] += (long)t; BigDecimal tt = t.divideToIntegralValue(ts); cand[i] += tt.longValue(); tm -= cand[i]; ary[i] = new CAT((t.divide(ts, 1000, BigDecimal.ROUND_HALF_EVEN)).subtract(tt), i); } if(tm > 0){ Arrays.sort(ary); int i = 0; while(tm > 0){ cand[ary[i].id]++; tm--; i++; if(i >= n) i = 0; } } for(int i = 0; i < n; i++){ if(b[i] > cand[i]){ ret = false; break;} } return ret; } } class CAT implements Comparable<CAT> { public BigDecimal dec; public int id; //public double db; CAT(BigDecimal r, int n) { dec = r; id = n; //db = r.doubleValue(); } public int compareTo(CAT arg0) { return (dec.compareTo(((CAT)arg0).dec))*-1; //(dec - ((CAT)arg0).dec < 0)? 1 : -1; } }
Submission Info
Submission Time | |
---|---|
Task | E - 選挙 |
User | mkiken |
Language | Java (OpenJDK 1.7.0) |
Score | 0 |
Code Size | 2310 Byte |
Status | WA |
Exec Time | 1582 ms |
Memory | 63968 KB |
Judge Result
Set Name | Bubunten | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 50 | 0 / 150 | ||||||||
Status |
|
|
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 | WA | 1507 ms | 61180 KB |
02.txt | WA | 1453 ms | 62444 KB |
03.txt | WA | 1359 ms | 61008 KB |
04.txt | WA | 1456 ms | 60812 KB |
05.txt | WA | 1339 ms | 60556 KB |
06.txt | WA | 1340 ms | 60476 KB |
07.txt | WA | 1474 ms | 63008 KB |
08.txt | WA | 1367 ms | 61456 KB |
09.txt | WA | 1346 ms | 62272 KB |
10.txt | WA | 1362 ms | 60688 KB |
11.txt | WA | 1344 ms | 57992 KB |
12.txt | WA | 1374 ms | 61704 KB |
13.txt | WA | 1406 ms | 61760 KB |
14.txt | WA | 1360 ms | 61764 KB |
15.txt | WA | 1349 ms | 62536 KB |
16.txt | WA | 1488 ms | 59900 KB |
17.txt | WA | 1418 ms | 60212 KB |
18.txt | WA | 1352 ms | 61732 KB |
19.txt | WA | 1397 ms | 60316 KB |
20.txt | WA | 1350 ms | 62380 KB |
20_minimal.txt | AC | 479 ms | 23612 KB |
21.txt | WA | 1573 ms | 61288 KB |
22.txt | WA | 1409 ms | 63200 KB |
23.txt | WA | 1352 ms | 61672 KB |
24.txt | WA | 1371 ms | 62724 KB |
25.txt | WA | 1461 ms | 61828 KB |
26.txt | WA | 1370 ms | 61008 KB |
27.txt | AC | 1362 ms | 61760 KB |
28.txt | AC | 1564 ms | 59112 KB |
29.txt | WA | 1444 ms | 63968 KB |
30.txt | WA | 1348 ms | 61800 KB |
31.txt | WA | 1449 ms | 62700 KB |
32.txt | AC | 1371 ms | 60224 KB |
33.txt | WA | 1398 ms | 59224 KB |
34.txt | WA | 1343 ms | 60664 KB |
35.txt | WA | 1366 ms | 62624 KB |
36.txt | WA | 1408 ms | 62012 KB |
37.txt | AC | 1582 ms | 58944 KB |
38.txt | WA | 1355 ms | 61752 KB |
39.txt | WA | 1332 ms | 59600 KB |
40.txt | WA | 1575 ms | 62940 KB |
41.txt | WA | 1068 ms | 47888 KB |
42.txt | AC | 788 ms | 37256 KB |
43.txt | AC | 575 ms | 33688 KB |
44.txt | WA | 1248 ms | 55076 KB |
45.txt | WA | 1103 ms | 49740 KB |
46.txt | AC | 918 ms | 44620 KB |
47.txt | WA | 746 ms | 37424 KB |
48.txt | AC | 503 ms | 28656 KB |
49.txt | WA | 1266 ms | 55076 KB |
50.txt | AC | 1078 ms | 50696 KB |
51.txt | WA | 1342 ms | 61348 KB |
52.txt | WA | 1372 ms | 61496 KB |
53.txt | WA | 1351 ms | 62172 KB |
54.txt | WA | 1358 ms | 62488 KB |
55.txt | WA | 1484 ms | 62252 KB |
56.txt | WA | 1556 ms | 59692 KB |
57.txt | WA | 1416 ms | 62024 KB |
58.txt | WA | 1441 ms | 61584 KB |
59.txt | WA | 1347 ms | 62308 KB |
60.txt | WA | 1358 ms | 61068 KB |
dekai1.txt | WA | 1401 ms | 49516 KB |
dekai2.txt | WA | 1423 ms | 55196 KB |
sample1.txt | AC | 527 ms | 31460 KB |
sample2.txt | AC | 573 ms | 32496 KB |
sample3.txt | AC | 496 ms | 26192 KB |
small01.txt | WA | 833 ms | 38008 KB |
small02.txt | AC | 671 ms | 36724 KB |
small03.txt | AC | 889 ms | 44360 KB |
small04.txt | WA | 732 ms | 36928 KB |
small05.txt | AC | 511 ms | 25756 KB |
small06.txt | WA | 791 ms | 38116 KB |
small07.txt | AC | 605 ms | 33312 KB |
small08.txt | AC | 885 ms | 42760 KB |
small09.txt | WA | 704 ms | 37288 KB |
small10.txt | AC | 928 ms | 42180 KB |
small11.txt | WA | 773 ms | 37608 KB |
small12.txt | WA | 590 ms | 32952 KB |
small13.txt | WA | 849 ms | 37736 KB |
small14.txt | AC | 678 ms | 37692 KB |
small15.txt | WA | 925 ms | 42588 KB |
small16.txt | WA | 739 ms | 37024 KB |
small17.txt | AC | 519 ms | 25696 KB |
small18.txt | AC | 808 ms | 38088 KB |
small19.txt | WA | 610 ms | 35840 KB |
small20.txt | AC | 888 ms | 42400 KB |
small21.txt | AC | 698 ms | 36620 KB |
small22.txt | WA | 917 ms | 45036 KB |
small23.txt | WA | 760 ms | 37228 KB |
small24.txt | AC | 573 ms | 32904 KB |
small25.txt | WA | 859 ms | 37396 KB |
yabame1.txt | WA | 1436 ms | 61324 KB |
yabame2.txt | WA | 1465 ms | 61984 KB |
yabame3.txt | WA | 1330 ms | 61492 KB |
yabame4.txt | WA | 1338 ms | 61520 KB |