[AtCoder] CODE THANKS FESTIVAL 2017(Parallel) D – Bus Tour
問題
方針
答えの候補を \( a \) とすると、\( 0 \leq a \leq M – 1 \) であることが分かります。バスの台数を \( x \)、グループ数を \( y \) とすると、
\[ 0 \leq Mx – Ny \leq M – 1\]
を満たします。\( g = gcd(N, M)\) とし、\( N = gn \)、\(M = gm\) とすると、
\[ 0 \leq g(mx – ny) \leq gm – 1\]
\[ 0 \leq mx – ny \leq m – \dfrac{1}{g} \]
と計算できます。\( mx – ny \) は整数であることから、
\[ 0 \leq mx – ny \leq m – 1 \]
となるので、\( g \) を掛けると、
\[ 0 \leq Mx – Ny \leq M – g \]
となります。
コード
提出したコード
最大公約数
typedef long long ll; ll gcd(ll m, ll n) { if (n == 0) return m; else return gcd(n, m % n); }
ディスカッション
コメント一覧
まだ、コメントがありません