結果
| 問題 |
No.15 カタログショッピング
|
| コンテスト | |
| ユーザー |
yun_app
|
| 提出日時 | 2016-05-13 22:25:05 |
| 言語 | Java (openjdk 23) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 2,092 bytes |
| コンパイル時間 | 2,282 ms |
| コンパイル使用メモリ | 78,096 KB |
| 実行使用メモリ | 67,060 KB |
| 最終ジャッジ日時 | 2024-10-05 16:49:53 |
| 合計ジャッジ時間 | 9,409 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 5 TLE * 1 -- * 4 |
ソースコード
/* 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
{
static int n;
static int target;
static int SUM;
static HashMap<Integer,Integer> remMap = new HashMap<Integer,Integer>();
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] lines = br.readLine().split(" ");
n = Integer.parseInt(lines[0]);
target = Integer.parseInt(lines[1]);
ArrayList<Integer> prices = new ArrayList<Integer>();
for(int i=0;i<n;i++){
int p = Integer.parseInt(br.readLine());
prices.add(p);
remMap.put(i,SUM);
SUM += p;
}
//Collections.reverse(prices);
check(prices,new ArrayList<Integer>(),0,0);
for(String a:ans){
System.out.println(a);
}
}
static ArrayList<String> ans = new ArrayList<String>();
public static int check(ArrayList<Integer> prices,ArrayList<Integer> items,int sum,int idx){
if(sum == target){
ans.add(toString(items));
return 1;
}
if(ans.size()>50 || idx >= n || target>SUM-remMap.get(idx)+sum){
//System.out.println(SUM + " " + remMap.get(idx) + " " + sum);
return 0;
}
int price = prices.get(idx);
ArrayList<Integer> cp_items = new ArrayList<Integer>(items);
cp_items.add(idx+1);
int s = 0;
s += check(prices,cp_items,sum+price,idx+1);
s += check(prices,new ArrayList<Integer>(items),sum,idx+1);
return s;
}
public static String toString(ArrayList<Integer> items){
StringBuilder sb = new StringBuilder();
for(int i:items){
if(sb.length() > 0){
sb.append(" ");
}
sb.append(i);
}
return sb.toString();
}
}
yun_app