結果

問題 No.5003 物理好きクリッカー
ユーザー tails
提出日時 2018-12-02 15:29:52
言語 C
(gcc 13.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
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32
権限があれば一括ダウンロードができます
コンパイルメッセージ
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