結果
問題 | No.5003 物理好きクリッカー |
ユーザー | hirayuu_yc |
提出日時 | 2023-09-11 13:45:45 |
言語 | C++23 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 80 ms / 10,000 ms |
コード長 | 2,198 bytes |
コンパイル時間 | 5,484 ms |
コンパイル使用メモリ | 314,572 KB |
実行使用メモリ | 24,396 KB |
スコア | 452,672 |
平均クエリ数 | 10000.00 |
最終ジャッジ日時 | 2023-09-11 13:45:56 |
合計ジャッジ時間 | 10,446 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge12 |
純コード判定しない問題か言語 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 80 ms
23,412 KB |
testcase_01 | AC | 67 ms
23,652 KB |
testcase_02 | AC | 65 ms
23,256 KB |
testcase_03 | AC | 71 ms
24,036 KB |
testcase_04 | AC | 68 ms
23,412 KB |
testcase_05 | AC | 65 ms
23,412 KB |
testcase_06 | AC | 66 ms
23,628 KB |
testcase_07 | AC | 65 ms
24,396 KB |
testcase_08 | AC | 65 ms
23,376 KB |
testcase_09 | AC | 69 ms
24,048 KB |
testcase_10 | AC | 71 ms
23,832 KB |
testcase_11 | AC | 65 ms
23,832 KB |
testcase_12 | AC | 68 ms
24,024 KB |
testcase_13 | AC | 69 ms
23,460 KB |
testcase_14 | AC | 75 ms
23,532 KB |
testcase_15 | AC | 67 ms
23,532 KB |
testcase_16 | AC | 76 ms
23,448 KB |
testcase_17 | AC | 68 ms
24,036 KB |
testcase_18 | AC | 67 ms
24,036 KB |
testcase_19 | AC | 78 ms
23,388 KB |
testcase_20 | AC | 79 ms
23,412 KB |
testcase_21 | AC | 64 ms
24,048 KB |
testcase_22 | AC | 66 ms
24,384 KB |
testcase_23 | AC | 71 ms
23,556 KB |
testcase_24 | AC | 70 ms
23,832 KB |
testcase_25 | AC | 71 ms
24,012 KB |
testcase_26 | AC | 68 ms
23,640 KB |
testcase_27 | AC | 67 ms
23,628 KB |
testcase_28 | AC | 75 ms
23,688 KB |
testcase_29 | AC | 64 ms
24,036 KB |
testcase_30 | AC | 67 ms
24,084 KB |
testcase_31 | AC | 65 ms
24,024 KB |
ソースコード
//諸々include、namespace設定(ACLも使用可能) #include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace chrono; using namespace atcoder; using ll=long long; #define rep(i,n) for(int i=0; i<(int)(n); i++) //0以上2^32-1以下の整数をランダムに生成(xorshift32) //seed値を固定しているため、基本結果が上振れたり下振れたりしない unsigned int randxor(){ static unsigned int x=42; x=x^(x<<13);x=x^(x>>15);x=x^(x<<17); return x; } //l以上r以下の整数をランダムに生成 int randint(int l,int r){ return l+randxor()%(r-l+1); } //l以上r以下の実数をランダムに生成 double uniform(double l,double r){ return ((double)randxor()/UINT_MAX)*(r-l)+l; } //時間計測(ミリ秒)、秒に直す場合10^6で割ると得られる auto startTime=system_clock::now(); int getTime(){ return duration_cast<microseconds>(system_clock::now()-startTime).count(); } //ゲームをプレイする const vector<string> behavior={"click","buy","sell","reinforce","enhclick","nothing"}; const vector<string> facil={" hand"," lily"," factory"," casino"," grimoire",""}; const vector<int> price={150,2000,30000,600000,10000000}; const vector<int> prod={1,10,120,2000,250000}; int N; string S; struct game{ //評価関数:Nターンclickのみ行った場合のクッキーの枚数 ll cookie; int turn; ll clickprod; vector<int> pos_number; vector<ll> rein; queue<int> ans; game(){ turn=0; cookie=0; clickprod=1; pos_number={0,0,0,0,0}; rein={1,1,1,1,1}; } void production(){ rep(i,5){ cookie+=prod[i]*pos_number[i]*rein[i]; } } void click(){ cookie+=clickprod; ans.push(5); production(); } void print(){ while(ans.size()>0){ int action=ans.front(); ans.pop(); cout<<behavior[action/6]<<facil[action%6]<<endl; cin>>action; } } }; //主要部分 int main(){ cin>>N; cin>>S; game g; rep(i,N){ g.click(); } g.print(); return 0; }