結果
| 問題 |
No.2324 Two Countries within UEC
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-05-28 16:38:57 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 233 ms / 2,000 ms |
| コード長 | 807 bytes |
| コンパイル時間 | 1,673 ms |
| コンパイル使用メモリ | 193,476 KB |
| 最終ジャッジ日時 | 2025-02-13 15:23:13 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 41 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
inline constexpr long long ModInv(long long a, const long long p) noexcept {
long long b = p, u = 1, v = 0;
while (b) {
long long t = a / b;
a -= t * b; std::swap(a, b);
u -= t * v; std::swap(u, v);
}
u %= p;
if (u < 0) u += p;
return u;
}
inline constexpr long long mod(const long long a, const long long m) noexcept {
return (a % m + m) % m;
}
int main() {
long long n, m, p, q;
cin >> n >> m >> p >> q;
while (q--) {
long long x, f;
cin >> x >> f;
if (x % p == 0) {
cout << (f == 0 ? m : 0) << endl;
}
else {
auto y = mod((mod(f, p) * ModInv(x, p)) - 1, p);
cout << m / p + (y <= mod(m - 1, p)) << endl;
}
}
}