| Task: | Finding inverse |
| Sender: | Ciphra |
| Submission time: | 2025-11-20 18:54:09 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.01 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | ACCEPTED | 0.00 s | details |
Code
#include <iostream>
typedef long long ll;
ll euclidExtended(ll a, ll b, ll &x, ll &y) {
if (b==0) {
y = 0, x = 1;
return a;
}
ll gcd = euclidExtended(b, a % b, y, x);
y = y - a/b * x;
return gcd;
}
int main(){
ll a,M,x,y;
std::cin >> a >> M;
ll gcd = euclidExtended(a, M, x, y);
ll ans = (x + M) % M;
if (gcd!=1) ans=-1;
std::cout << ans << "\n";
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 6 7 |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 0 7 |
| correct output |
|---|
| -1 |
| user output |
|---|
| -1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 5 78 |
| correct output |
|---|
| 47 |
| user output |
|---|
| 47 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 89 99 |
| correct output |
|---|
| 89 |
| user output |
|---|
| 89 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 0 61 |
| correct output |
|---|
| -1 |
| user output |
|---|
| -1 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 897 947 |
| correct output |
|---|
| 625 |
| user output |
|---|
| 625 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 419 538 |
| correct output |
|---|
| 217 |
| user output |
|---|
| 217 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 32 938 |
| correct output |
|---|
| -1 |
| user output |
|---|
| -1 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 184120 505187 |
| correct output |
|---|
| 438779 |
| user output |
|---|
| 438779 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 264601 885661 |
| correct output |
|---|
| 360221 |
| user output |
|---|
| 360221 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 40310 590135 |
| correct output |
|---|
| -1 |
| user output |
|---|
| -1 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 202254499 577081420 |
| correct output |
|---|
| 128866679 |
| user output |
|---|
| 128866679 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 539836073 888851205 |
| correct output |
|---|
| 797044652 |
| user output |
|---|
| 797044652 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 697847215 756971670 |
| correct output |
|---|
| -1 |
| user output |
|---|
| -1 |
