結果
問題 | No.2324 Two Countries within UEC |
ユーザー | KKT89 |
提出日時 | 2023-05-28 15:05:49 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 146 ms / 2,000 ms |
コード長 | 1,152 bytes |
コンパイル時間 | 2,502 ms |
コンパイル使用メモリ | 212,696 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-26 23:24:23 |
合計ジャッジ時間 | 6,540 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 41 |
ソースコード
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; typedef long long int ll; typedef unsigned long long int ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } inline double time() { return static_cast<long double>(chrono::duration_cast<chrono::nanoseconds>(chrono::steady_clock::now().time_since_epoch()).count()) * 1e-9; } ll mod_pow(ll a,ll b,ll mod){ a%=mod; if(b==0)return 1; if(b==1)return a; ll res=mod_pow(a,b/2,mod)%mod; res*=res; res%=mod; if(b%2)res*=a; return res%mod; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,m,p,q; cin >> n >> m >> p >> q; while (q--) { ll x,f; cin >> x >> f; x %= p; if (x == 0) { if (f == 0) { cout << m << "\n"; } else { cout << 0 << "\n"; } } else if (f == 0) { cout << m/p << "\n"; } else { ll u = f*mod_pow(x,p-2,p)%p; cout << m/p+(m%p >= u) << "\n"; } } }