メモ

yukicoderでゆるふわgolf

yukicoder No.191 供託金

問題はこちら
No.191 供託金 - yukicoder

得票数を合計して10で割りボーダーラインをだし、それ以下である人数を数えて30倍する

int main(){
	int n,i,s=0,k=0,c[110];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",c+i);
		s+=c[i];
	}
	s/=10;
	for(i=0;i<n;i++)if(c[i]<=s)k++;
	printf("%d",k*30);
	return 0;
}

縮める。読み飛ばしは頑張る

n,i,a[100];
main(s){
	for(;~scanf("%d",a+i);s+=a[i++]*!!i);
	for(;--i;n+=a[i]*10<=s);
	n=!printf("%d",n*30);
}

ループ圧縮。aのサイズは99にしても通る

n,i,a[99];
main(s){
	for(;~scanf("%d",a+i)?s+=a[i++]*!!i:(n+=a[--i]*10<=s,i-1););
	n=!printf("%d",n*30);
}

100B

ところでN≦100なので、これを投票数に加算してしまってもボーダーラインは10程度しか変わらないのでもしかして大丈夫なのでは???

//嘘解法
n,i,a[99];
main(s){
	for(;~scanf("%d",a+i)?s+=a[i++]:(n+=a[--i]*10<=s,i-1););
	n=!printf("%d",n*30);
}

//9
//1 0 0 0 0 0 0 0 0
//という入力で倒せる

96B


2016/10/17追記
いつの間にかリジャッジで落とされていた。どうやら配列サイズを99にしたらREになるらしい
また、嘘解法じゃない方について、Nをsに加算してしまっても比較の時に引けばいいので1B縮む
結局±0

n,i,a[999];
main(s){
	for(;~scanf("%d",a+i)?s+=a[i++]:(n+=a[--i]*10<=s-*a,i-1););
	n=!printf("%d",n*30);
}

100B