結果
| 問題 |
No.37 遊園地のアトラクション
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-11-30 08:17:17 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 925 bytes |
| コンパイル時間 | 539 ms |
| コンパイル使用メモリ | 58,960 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-27 13:52:07 |
| 合計ジャッジ時間 | 1,416 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 25 WA * 2 |
ソースコード
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int T,N;
cin>>T;
cin>>N;
int ary1[N];
for(int i=0;i<N;++i){
cin>>ary1[i];
}
int ary2[N];
for(int i=0;i<N;++i){
cin>>ary2[i];
}
int ary3[N][10];
for(int i=0;i<N;++i){
ary3[i][0]=ary2[i];
}
for(int i=0;i<N;++i){
for(int j=1;j<10;++j){
if(ary3[i][j-1]!=0) ary3[i][j]=(ary3[i][j-1]/2);
else ary3[i][j]=0;
}
}
int ary4[N];
for(int i=0;i<N;++i){
ary4[i]=0;
}
int ans1=0,ans2=0;
while(1){
double a=0;
int b=0;
for(int i=0;i<N;++i){
double d=((double)(ary3[i][ary4[i]])/(double)(ary1[i]));
if(a<d && T>=ary1[i]){
a=d;
b=i;
}
int e=ary3[i][ary4[i]];
if(T>=ary1[i] && ans2<ans1+e) ans2=ans1+e;
}
if(a==0) break;
int c=ary3[b][ary4[b]];
ans1+=c;
ary4[b]+=1;
T-=ary1[b];
}
cout<<max(ans1,ans2)<<endl;
}