对于整数 m,r,p>0,找到(r+kp)%m的最小值。
输入多行。
第一行输入 t(1≤t≤2∗105)组数据
接下来 t 行,每行 3 个整数 r,p,m.(0<r,p,m≤109)
输出多行。
每组数据输出一行一个整数。
5
57 74 27
9 53 23
45 84 38
48 18 48
13 75 30
0
0
1
0
13
大佬们帮帮我吧嘤嘤嘤
CODE:
#include <iostream> // 基本入出力ストリーム
#include <algorithm> // 一般的なアルゴリズム(ソート、ルックアップ、やり直し、二分ルックアップなど)
#include <vector> // 動的配列(スペースが足りないと自動的に拡張されます)
#include <queue> // スタック(先に入って先に出ます)
#include <stack> // スタック(先に入ってから出ます)
#include <set> // 集合(反復しない順序)です
#include <map> // キー値対コンテナ(マッピング)
#include <list> // 両方向リスト
#include <math.h> // すうがくかんすう
#include <functional> // 通用的函数绑定和调用机制一般的なバインディングと呼び出しの仕組み
#define endl '\n'
#define pii pair<int, int>
#define pdd pair<double, double>
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
using namespace std;
const int inf = 1e9 + 7;
const int mod = 998244353;
const int N = 2e5 + 10, M = N << 1;
void solve(){
// 竞赛程序
int m,r,p,k=0;
cin>>r>>p>>m;
for(int k=0;k<=m;k++){
if((r+k*p)%m==0){
cout<<"0"<<endl;
return;
}
}
cout<<(r+k*p)%m<<endl;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t = 1;
cin >> t; // 非多组测试数据请注释该行
while(t--) solve();
return 0;
}
千恩万谢!