結果

問題 No.3022 一元一次式 mod 1000000000
ユーザー makichan
提出日時 2025-02-14 21:56:22
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 927 bytes
コンパイル時間 5,746 ms
コンパイル使用メモリ 333,280 KB
実行使用メモリ 13,636 KB
最終ジャッジ日時 2025-02-14 21:58:53
合計ジャッジ時間 16,122 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 14 WA * 3 TLE * 3
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/all>
// using mint = atcoder::static_modint<998244353>;
// //using mint = atcoder::static_modint<1000000007>;
using namespace std;
using namespace atcoder;
using ld = long double;
using ll = long long;
#define mp(a,b) make_pair(a,b)
#define rep(i,s,n) for(int i=s; i<(int)n; i++)
const vector<int> dx{1,0,-1,0},dy{0,1,0,-1};


void solve(){
    ll mod=1e9;
    ll n,m;cin >> n >> m;
    n%=mod;
    m=(mod-m%mod)%mod;

    ll ord=mod*100;
    while(n%2==0){
        n/=2;
        mod/=2;
        if(m%2!=0){
            cout << -1 << "\n";
            return;
        }
        m/=2;
    }
    while(n%5==0){
        n/=5;
        mod/=5;
        if(m%5!=0){
            cout << -1 << "\n";
            return;
        }
        m/=5;
    }
    ll inv_n=pow_mod(n,ord-1,mod);
    ll ans=m*inv_n%mod;
    cout << ans << "\n";

}
int main(){
    int T;cin >> T;
    rep(i,0,T)solve();
}
0