正の整数Kは、いくつかの素数Kモッドの結果を与え、最小K.必要条件を満たしています 例えば、K%2 = 1、K%3 = 2、K%5 = 3。= 23 Kの対象最低。
エントリー
行1:数Nは、後数1及び素数アナログ入力を表します。(2 <= N <= 10 ) 2 - N + 1行、各Pは、数2及びMであり、スペースで区切られ、Pは素数であり、MはK%Pの結果であります (2 <= P <= 100 、0 <= K <P)
輸出
出力修飾最小のK. すべてのデータは、10未満のK ^ 9ました。
サンプル入力
3
2 1
3 2
5 3
サンプル出力
23個
の基本:
X ≡a1(V M1)X ≡a2(V M2)...... X ≡an(V族MN);
ここで、m1.m2、M3 ......、ペアごとの互いに素の整数をmnを
令M =(M1 * M2 * M3 ... * MN)。
MI = M / MI、TIは、TI式MI *は溶液≡1(MOD MI)の
Xは、溶液は、x =合計1〜N(AI *ミ* TI)は、整数解を有します。
次のように証明します:
、すべての弾性率=Σ代入X(N〜1)* AI *ミチタンもしそうの倍数以外ミ= M / MI MIため、確立された元の方程式
、私はこの方程式に貢献する各aiMitiとして理解することができる他の式には影響しません
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 typedefの長い 長いLL。 4 [ARR llの15 ]、BRR [ 15 ]。 5 INT N。 6 LLのX、Y。 7 LLのGDC(LLのB、LL){ 戻り Bの== 0:GDC(B、%のB)。} 8 ボイド(LLのB -1,11,11-&X、LL&exgdc Y){ 9 場合(Bの== 0 ){ 10 X = 1、Y = 0。返します。 11 } 12 exgdc(B、%のB、X、Y)。 13 LLのTEMP = X。 14 X = Y。 15 Y = TEMP-A / B * Y。 16 } 17 18 19 INT メイン(){ 20の IOS :: sync_with_stdio(偽)。 21 CIN >> N。 22 LLのLCM = 1 。 23 のために(int型 i = 1 ; iが<= N; iが++ ){ 24 CIN >> ARR [I] >> BRR [I]。 25 * = LCM ARR [I]。 26 } 27の LLのRES = 0 。 28 のために(int型 i = 1 ; iが<= N iが++ ){ 29 exgdc(LCM / ARR [I]、ARR [i]は、X、Y)。 30 X =(X + ARR [I])%(ARR [I])。 31 のRES =(RES + BRR [I] * X * LCM / ARR [I])。 32 } 33 COUT << RESの%のLCM << ENDL。 34 リターン 0 。 35 }