結果
問題 |
No.3179 3 time mod
|
ユーザー |
|
提出日時 | 2025-06-13 21:57:34 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 866 bytes |
コンパイル時間 | 553 ms |
コンパイル使用メモリ | 75,780 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-06-13 21:57:36 |
合計ジャッジ時間 | 1,786 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 17 WA * 24 |
ソースコード
#include<iostream> #include<vector> #include<algorithm> using namespace std; using ll = long long; ll extgcd(ll a, ll b, ll& x, ll& y){ if(b==0){ x=1, y=0; return a; } ll x1, y1; ll gcd=extgcd(b, a%b, x1, y1); x=y1; y=x1-(a/b)*y1; return gcd; } int main(void){ ll n; cin >> n; ll p, q, r, a, b, c; cin >> p >> q >> r >> a >> b >> c; ll x, y; extgcd(p, q, x, y); //px+qy=1 //px=1 mod q //qy=1 mod p ll s=(p*b*x)%(p*q)+(a*q*y)%(p*q); s%=p*q; //x=s mod pq //x=c mod r extgcd(p*q, r, x, y); ll pq=p*q, pqr=p*q*r; ll t=(pq*c*x)%pqr+(s*r*y)%pqr; t%=pqr; //cout << pqr << ' ' << t << endl; if(t>n){ cout << 0 << endl; return 0; } ll left=1, right=1e18/pqr; while(right-left>1){ ll mid=(left+right)/2; ll now=mid*pqr+t; if(now<=n) left=mid; else right=mid; } cout << right << endl; return 0; }