結果

問題 No.5003 物理好きクリッカー
ユーザー tailstails
提出日時 2018-12-02 15:29:52
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 309 ms / 10,000 ms
コード長 1,520 bytes
コンパイル時間 288 ms
実行使用メモリ 22,008 KB
スコア 65,653,723,830
平均クエリ数 10000.00
最終ジャッジ日時 2021-07-19 07:54:07
合計ジャッジ時間 13,624 ms
ジャッジサーバーID
(参考情報)
judge15 / judge11
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 308 ms
21,684 KB
testcase_01 AC 279 ms
21,360 KB
testcase_02 AC 278 ms
21,372 KB
testcase_03 AC 281 ms
21,528 KB
testcase_04 AC 279 ms
21,348 KB
testcase_05 AC 306 ms
21,852 KB
testcase_06 AC 307 ms
21,360 KB
testcase_07 AC 303 ms
21,876 KB
testcase_08 AC 283 ms
21,552 KB
testcase_09 AC 285 ms
21,900 KB
testcase_10 AC 289 ms
21,864 KB
testcase_11 AC 275 ms
21,360 KB
testcase_12 AC 286 ms
21,876 KB
testcase_13 AC 287 ms
21,684 KB
testcase_14 AC 288 ms
21,372 KB
testcase_15 AC 291 ms
21,708 KB
testcase_16 AC 280 ms
21,372 KB
testcase_17 AC 281 ms
21,492 KB
testcase_18 AC 281 ms
21,864 KB
testcase_19 AC 292 ms
21,876 KB
testcase_20 AC 284 ms
21,372 KB
testcase_21 AC 280 ms
21,684 KB
testcase_22 AC 289 ms
21,540 KB
testcase_23 AC 308 ms
21,912 KB
testcase_24 AC 307 ms
21,336 KB
testcase_25 AC 305 ms
21,360 KB
testcase_26 AC 304 ms
21,504 KB
testcase_27 AC 308 ms
21,444 KB
testcase_28 AC 287 ms
21,864 KB
testcase_29 AC 276 ms
21,636 KB
testcase_30 AC 282 ms
21,864 KB
testcase_31 AC 309 ms
21,864 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:6:1: 警告: データ定義が型または記憶域クラスを持っていません
    6 | bspeeds[]={1,10,120,2000,25000};
      | ^~~~~~~
main.c:6:1: 警告: 型がデフォルトの ‘int’ に ‘bspeeds’ の宣言内でなります [-Wimplicit-int]
main.c:7:1: 警告: データ定義が型または記憶域クラスを持っていません
    7 | bprices[]={150,2000,30000,600000,10000000};
      | ^~~~~~~
main.c:7:1: 警告: 型がデフォルトの ‘int’ に ‘bprices’ の宣言内でなります [-Wimplicit-int]
main.c:29:1: 警告: 戻り値の型をデフォルトの ‘int’ にします [-Wimplicit-int]
   29 | main(){
      | ^~~~
main.c: 関数 ‘main’ 内:
main.c:30:2: 警告: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]
   30 |  gets(buf);
      |  ^~~~
      |  fgets
/tmp/ccPvmZlK.o: In function `main':
main.c:(.text.startup+0x27): warning: the `gets' function is dangerous and should not be used.

ソースコード

diff #

#include <stdio.h>

#define long long long

char const* fnames[]={"hand","lily","factory","casino","grimoire"};
bspeeds[]={1,10,120,2000,25000};
bprices[]={150,2000,30000,600000,10000000};

char const*action="AABBBBBBCBBDDBDBDADBDEDDFFFDFDCBBBFBFGFFHHBHBDHHHBBIHBJJJBEBBJJJCBBBBBKBBAGI";

char buf[20000];

long buy_price(long base,int num){
	long price=base;
	for(;num--;){
		price=(price*6+4)/5;
	}
	return price;
}

long rein_price(long base,int lvl){
	long price=base;
	for(;lvl--;){
		price*=10;
	}
	return price;
}

main(){
	gets(buf);
	gets(buf);

	long cookie=0;
	int cl=0;
	int n[5]={0,0,0,0,0};
	int l[5]={0,0,0,0,0};
	for(int turn=0;turn<10000;++turn){
		// action
		int done=0;
		int a=*action;
		if(a=='A'){
			// enhclick
			int price=rein_price(15,cl);
			if(cookie>=price){
				cookie-=price;
				cl+=1;
				done=1;
				puts("enhclick");
			}
		}else if(a>='B'&&a<='K'){
			int i=a-'B'>>1;
			if(a&1){
				// reinforce
				int price=rein_price(bprices[i]*10,l[i]);
				if(cookie>=price){
					cookie-=price;
					l[i]+=1;
					done=1;
					printf("reinforce %s\n",fnames[i]);
				}
			}else{
				// buy
				int price=buy_price(bprices[i],n[i]);
				if(cookie>=price){
					cookie-=price;
					n[i]+=1;
					done=1;
					printf("buy %s\n",fnames[i]);
				}
			}
		}
		
		if(done){
			++action;
		}else{
			// click
			cookie+=1<<cl;
			puts("click");
		}

		fflush(stdout);
		gets(buf);

		// produce
		for(int i=0;i<5;++i){
			cookie+=bspeeds[i]*n[i]<<l[i];
		}
		// event
	}
	printf("%lld\n",cookie);
}
0