結果
問題 | No.2767 Add to Divide |
ユーザー |
|
提出日時 | 2024-05-31 22:05:17 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 60 ms / 2,000 ms |
コード長 | 1,039 bytes |
コンパイル時間 | 2,369 ms |
コンパイル使用メモリ | 201,264 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-20 23:35:25 |
合計ジャッジ時間 | 3,596 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 16 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;int main(){ios::sync_with_stdio(false);cin.tie(0);int T;cin >> T;while(T--){ll a, b;cin >> a >> b;if(b % a == 0){cout << 0 << '\n';continue;}ll c = b / a;if(c == 1){cout << -1 << '\n';continue;}// c 倍以下は確定// A * k == B// (a + x) * k == (b + x)// a + (k - 1) * x == b// b - a == (k - 1) * xll ans = -1;for(ll i = 1; i <= 50000; i++){if((b + i) % (a + i) == 0){ans = i;break;}}if(ans != -1){cout << ans << '\n';continue;}for(ll i = min(50000ll, c); i >= 2; i--){if((b - a * i) % (i - 1) == 0){ans = (b - a * i) / (i - 1);break;}}cout << ans << '\n';}}