結果
問題 | No.176 2種類の切手 |
ユーザー |
![]() |
提出日時 | 2016-10-04 20:42:29 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 673 bytes |
コンパイル時間 | 458 ms |
コンパイル使用メモリ | 57,308 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-21 16:48:55 |
合計ジャッジ時間 | 1,448 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 27 WA * 2 |
ソースコード
#include <iostream> #include <algorithm> using namespace std; typedef long long ll; #define INF (ll)1e9 int main() { ll A, B, T; cin >> A >> B >> T; ll tmpA=A, tmpB=B; int i = 2, gcd = 1; while (tmpA >= i*i) { if (tmpA%i == 0 && B%i==0) { int cnt = 0; while (tmpA%i == 0) { tmpA /= i; gcd *= i; } } i++; } if (tmpB%tmpA == 0)gcd *= tmpA; ll lcm = tmpA*tmpB / gcd; ll tmpT = T; tmpT %= lcm; if (tmpT + lcm <= T)tmpT += lcm; ll over_T = INF; for (int i = 0; i*B <= tmpT; i++) { over_T = min(over_T, (A - (tmpT - i*B) % A) % A); } int j = (tmpT / B) + 1; over_T = min(over_T, j*B - tmpT); cout << T + over_T << endl; return 0; }