結果
| 問題 |
No.417 チューリップバブル
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-10-01 08:35:59 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 824 bytes |
| コンパイル時間 | 477 ms |
| コンパイル使用メモリ | 55,680 KB |
| 実行使用メモリ | 18,760 KB |
| 最終ジャッジ日時 | 2024-11-21 12:25:41 |
| 合計ジャッジ時間 | 89,050 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 TLE * 29 |
ソースコード
#include <iostream>
using namespace std;
typedef long long ll;
int N;
int ary_g[200][200];
ll r_max=0;
void calc(int p,ll r,int m,ll ary_r[]){
for(int i=0;i<N;++i){
if(i==p) continue;
if(ary_g[p][i]){
int m2=m-ary_g[p][i];
if(m2<0) continue;
ll r2=r+ary_r[i];
ll ary_r2[N];
for(int i2=0;i2<N;++i2){
ary_r2[i2]=ary_r[i2];
}
ary_r2[i]=0;
if(i==0 && r2>r_max) r_max=r2;
calc(i,r2,m2,ary_r2);
}
}
}
int main(){
int M;
cin>>N>>M;
ll ary_r[N];
for(int i=0;i<N;++i){
cin>>ary_r[i];
}
int A,B,C;
for(int i=0;i<N-1;++i){
cin>>A>>B>>C;
ary_g[A][B]=C;
ary_g[B][A]=C;
}
ll ary_r2[N];
for(int i=0;i<N;++i){
ary_r2[i]=ary_r[i];
}
ll r=ary_r[0];
r_max=r;
ary_r2[0]=0;
calc(0,r,M,ary_r2);
cout<<r_max<<endl;
}