結果
問題 |
No.50 おもちゃ箱
|
ユーザー |
![]() |
提出日時 | 2016-05-13 16:12:11 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,192 bytes |
コンパイル時間 | 3,236 ms |
コンパイル使用メモリ | 90,840 KB |
実行使用メモリ | 50,832 KB |
最終ジャッジ日時 | 2024-10-05 14:19:16 |
合計ジャッジ時間 | 5,578 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 WA * 6 |
ソースコード
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { // your code goes here BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); ArrayList<Integer> toy = new ArrayList<Integer>(); int toy_sum = 0; for(String st:br.readLine().split(" ")){ int t = Integer.parseInt(st); toy.add(t); toy_sum += t; } Collections.sort(toy,(a,b)->{return b-a;}); int m = Integer.parseInt(br.readLine()); ArrayList<Integer> box = new ArrayList<Integer>(); for(String st:br.readLine().split(" ")){ box.add(Integer.parseInt(st)); } Collections.sort(box,(a,b)->{return b-a;}); int min = 1; int max = m; int ans = -1; while(max>=min){ int ave = (min+max)/2; if(check(new ArrayList<Integer>(box.subList(0,ave)),new ArrayList<Integer>(toy),toy_sum)){ ans = ave; max = ave-1; }else{ min = ave+1; } } System.out.println(ans); } public static boolean check(ArrayList<Integer> box,ArrayList<Integer> toy,int toy_sum){ for(int b:box){ toy_sum-=b; } if(toy_sum>0){ return false; } for(int i=0;i<toy.size();i++){ int idx = box.indexOf(toy.get(i)); if(idx >= 0){ toy.remove(i); i--; box.set(idx,0); } } Collections.sort(box,(a,b)->{return b-a;}); for(int i=0;i<toy.size();i++){ int bo = box.get(0); int n = toy.get(i); if(bo>=n){ box.set(0,bo-n); Collections.sort(box,(a,b)->{return b-a;}); }else{ return false; } } return true; } }