結果
問題 |
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; }