https://atcoder.jp/contests/cpsco2019-s4/tasks/cpsco2019_s4_a
解説
https://atcoder.jp/contests/cpsco2019-s4/submissions/5284961
まず、一周2Lメートルなので、X mod 2Lを考えることにしよう。
X mod 2LはXを2Lで割ったあまりのことで、X=a*2L+bと書ける時は、
a周回って、そこから更にbメートル泳ぐように考えることができる。
場面として、行き(X≦L)と帰り(L<X)があるので、そこで場合分けする。
行きの場合は普通に移動距離=プールの左端からの距離
帰りの場合は、プールの左端からの距離=往復の距離ー移動距離
これで答える。
int L, X; //--------------------------------------------------------------------------------------------------- void _main() { cin >> L >> X; X %= L*2; if (X <= L) cout << X << endl; else cout << (L * 2 - X) << endl; }