問題はこちら
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