メモ

yukicoderでゆるふわgolf

yukicoder No.138 化石のバージョン

問題はこちら
No.138 化石のバージョン - yukicoder

ピリオドで区切られた上のくらいから順に比較すれば良い

int main(){
	int a,b,c,d,e,f;
	scanf("%d.%d.%d%d.%d.%d",&a,&b,&c,&d,&e,&f);
	puts(d<a||(d==a&&e<b)||(d==a&&e==b&&f<=c)?"YES":"NO"); 
	return 0;
}

読み込みがいっぱいあるのでこれを減らしたい
a.b.cを200進法と解釈して数の大小を比較することにすることにすれば、値を保存する変数を減らせる
(200でなくとも100より大きければ良い)

i,f,b;
main(a){
	for(;~scanf("%d.",&f);a=i++%3?a*200+f:(b=a,f));
	f=!puts(a>b?"NO":"YES");
}

86B


2017/07/30追記
a*128+fはa<<7|fと書けるので1B短縮
コンパイラのバージョンアップによる3Bとあわせて4B短縮

i,f,b;
main(a){
	for(;~scanf("%d.",&f);a=i++%3?a<<7|f:(b=a,f));
	puts(a>b?"NO":"YES");
}

82B