QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#204631 | #7562. Except One | ucup-team1055# | AC ✓ | 0ms | 3816kb | C++20 | 1.3kb | 2023-10-07 13:30:30 | 2023-10-07 13:30:31 |
Judging History
answer
#include <bits/stdc++.h>
#define rep(i,s,n) for(int i = int(s); i < int(n); i++)
#define rrep(i,s,n) for(int i = int(n) - 1; i >= int(s); i--)
#define all(v) (v).begin(), (v).end()
using ll = long long;
using ull = unsigned long long;
using ld = long double;
template<class T>
bool chmin(T &a, T b) {
if(a <= b) return false;
a = b;
return true;
}
template<class T>
bool chmax(T &a, T b) {
if(a >= b) return false;
a = b;
return true;
}
using namespace std;
ll mod_pow(ll x, ll m, int P){
ll ret = 1;
ll tmp = x;
while (m > 0){
if (m & 1){
ret = ret * tmp % P;
}
m >>= 1;
tmp = tmp * tmp % P;
}
return ret;
}
void naive(ll p){
vector<ll> dp(p);
dp[0] = 1;
rep(i,1,p){
vector<ll> ndp = dp;
rep(j,0,p-1){
ndp[j+1] += dp[j] * i;
}
rep(j,0,p){
ndp[j] %= p;
}
dp = ndp;
}
rep(i,0,p){
cout << dp[i] << ' ';
}
cout << endl;
}
ll fast(ll p, ll k, ll t){
ll v = (- k + p) % p;
ll ans = mod_pow(v, t, p);
if (t == p-1) ans--;
ans += p;
ans %= p;
return ans;
}
int main() {
ll p, k, t;
cin >> p >> k >> t;
//naive(p);
cout << fast(p, k, t) << '\n';
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3620kb
input:
7 5 3
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
11 6 7
output:
3
result:
ok 1 number(s): "3"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
3 2 1
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
596620183 516846890 38276329
output:
135352707
result:
ok 1 number(s): "135352707"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3508kb
input:
382744931 85302262 235496559
output:
14577469
result:
ok 1 number(s): "14577469"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3508kb
input:
659446013 641119314 378275666
output:
290624162
result:
ok 1 number(s): "290624162"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
227 163 124
output:
189
result:
ok 1 number(s): "189"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
197 187 19
output:
62
result:
ok 1 number(s): "62"
Test #9:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
5 3 3
output:
3
result:
ok 1 number(s): "3"
Test #10:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
7 6 4
output:
1
result:
ok 1 number(s): "1"
Test #11:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
7 1 1
output:
6
result:
ok 1 number(s): "6"
Test #12:
score: 0
Accepted
time: 0ms
memory: 3816kb
input:
782371 586755 418517
output:
298550
result:
ok 1 number(s): "298550"
Test #13:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
181081 178315 76002
output:
125177
result:
ok 1 number(s): "125177"
Test #14:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
715019 492103 446729
output:
221541
result:
ok 1 number(s): "221541"
Test #15:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
238985261 199832612 162675695
output:
65826267
result:
ok 1 number(s): "65826267"
Test #16:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
129716453 10994076 62963738
output:
5186275
result:
ok 1 number(s): "5186275"
Test #17:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
962360593 652577122 345596237
output:
814039152
result:
ok 1 number(s): "814039152"
Test #18:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
871606937 839183139 754188014
output:
466391387
result:
ok 1 number(s): "466391387"
Test #19:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
275568091 270750503 241146839
output:
252569968
result:
ok 1 number(s): "252569968"
Test #20:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
562028473 111749710 450258818
output:
63116256
result:
ok 1 number(s): "63116256"