読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.279 木の数え上げ

問題はこちら
No.279 木の数え上げ - yukicoder

「tの個数」「rの個数」「(eの個数)/2」の中で一番小さいものが答え

#define min(a,b)(a<b?a:b)
int main(){
	int i,a[127]={};
	char s[1000010];
	gets(s);
	for(i=0;s[i];i++)a[s[i]]++;
	a['e']/=2;
	printf("%d",min(min(a['e'],a['t']),a['r']));
	return 0;
}

minを書くのが大変なので、eがa[0]に入るようにindexをずらす
aの要素数は書かなくてもどうにかなるらしい

j,a[];
main(i){
	for(;i=getchar()-10;j=a[15])a[i-91]++;
	*a/=2;
	j=!printf("%d",*a<(i=a[13])?j<*a?j:*a:i<j?i:j);
}

106B
for(;read(0,&i,1);j=a[15])a[i-101]++;
とするとRE

16/06/06追記
fminの存在を忘れていた

i,a[9];main(){for(;i=getchar()-10?:!printf("%d",i=fmin(fmin(*a/2,a[13]),a[15]));a[i-91]++);}

a[]ではRE
さらに出力フォーマットの"%.0f"は"%.f"と書けるので

i,a[9];main(){for(;i=getchar()-10?:!printf("%.f",fmin(fmin(*a/2,a[13]),a[15]));a[i-91]++);}

として91B