結果
| 問題 |
No.10 +か×か
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-09 16:09:35 |
| 言語 | Java (openjdk 23) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,091 bytes |
| コンパイル時間 | 3,867 ms |
| コンパイル使用メモリ | 79,364 KB |
| 実行使用メモリ | 54,564 KB |
| 最終ジャッジ日時 | 2024-09-24 16:56:35 |
| 合計ジャッジ時間 | 5,907 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 4 RE * 8 |
ソースコード
import java.math.BigInteger;
import java.util.Scanner;
import java.io.PrintWriter;
import java.util.ArrayList;
public class main{
static int n;
static int t;
static int[] a;
static boolean[][] dp;
static void dfs(int now,int sum,ArrayList<Character> result){
//System.out.println("now="+now+" sum="+sum);
//for(char g:result){
//System.out.print(g);
//}
if(now==n-1){
if(sum==t){
PrintWriter pw=new PrintWriter(System.out);
for(char g:result){
pw.print(g);
}
pw.close();
System.exit(0);
}
return;
}
if(sum>t)return;
if(dp[sum][now])return;
dp[now][sum]=true;
result.add('+');
dfs(now+1,sum+a[now+1],result);
result.remove(result.size()-1);
result.add('*');
dfs(now+1,sum*a[now+1],result);
result.remove(result.size()-1);
return;
}
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
t=sc.nextInt();
a=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
dp=new boolean[51][10001];
dfs(0,a[0],new ArrayList<Character>());
sc.close();
}
}