Submission #2941562
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(ll i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)
typedef long long ll;
ll X,P,A,B,sp,xx;
map<ll,ll> mp;
const ll K=1<<26;
ll mpw(ll n,ll m){
ll ret=1;
while(m>0){
ret*=n;
ret%=P;
n*=n;
n%=P;
m/=2;
}
return ret;
}
ll inv(ll n){
return mpw(n,P-2);
}
ll bsgs(ll y){
ll z=y;
REP(i,sp){
auto ite=mp.lower_bound(z);
if (ite->first==z && i*sp+ite->second<P-1){
return i*sp+ite->second;
}
z*=xx;
z%=P;
}
return -1;
}
int main(){
cin>>X>>P>>A>>B;
for(sp=1;sp*sp<P;sp++);
xx=mpw(inv(X),sp);
ll a=1;
REP(i,sp){
mp[a]=i;
a*=X;
a%=P;
}
ll ans=P;
if (B-A<=K){
ll b=mpw(X,A);
REP(i,B-A+1){
ans=min(ans,b);
b*=X;
b%=P;
}
}else{
ll b=mpw(X,A);
REP(i,K){
ans=min(ans,b);
b*=X;
b%=P;
}
FOR(i,1,ans){
ll c=bsgs(i);
if (c<A){
c=c+(A-c+P-2)/(P-1)*(P-1);
}
if (c<=B){
ans=i;
break;
}
}
}
cout<<ans<<endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - あまり |
User |
addeight |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1056 Byte |
Status |
WA |
Exec Time |
1076 ms |
Memory |
3200 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
All |
sample_02.txt, sample_03.txt, sample_04.txt, subtask1_00.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
1 ms |
256 KB |
sample_02.txt |
AC |
1 ms |
256 KB |
sample_03.txt |
AC |
10 ms |
640 KB |
sample_04.txt |
AC |
5 ms |
1280 KB |
subtask1_00.txt |
WA |
1076 ms |
3200 KB |
subtask1_01.txt |
AC |
14 ms |
2944 KB |
subtask1_02.txt |
AC |
11 ms |
2432 KB |
subtask1_03.txt |
AC |
4 ms |
256 KB |
subtask1_04.txt |
AC |
94 ms |
640 KB |
subtask1_05.txt |
WA |
2 ms |
384 KB |
subtask1_06.txt |
AC |
197 ms |
256 KB |
subtask1_07.txt |
AC |
14 ms |
3072 KB |
subtask1_08.txt |
AC |
15 ms |
3072 KB |
subtask1_09.txt |
AC |
976 ms |
256 KB |
subtask1_10.txt |
AC |
13 ms |
2816 KB |
subtask1_11.txt |
AC |
729 ms |
3072 KB |
subtask1_12.txt |
AC |
976 ms |
256 KB |
subtask1_13.txt |
AC |
971 ms |
256 KB |
subtask1_14.txt |
AC |
912 ms |
256 KB |
subtask1_15.txt |
WA |
782 ms |
3072 KB |
subtask1_16.txt |
AC |
12 ms |
2688 KB |
subtask1_17.txt |
AC |
12 ms |
384 KB |
subtask1_18.txt |
WA |
12 ms |
2560 KB |
subtask1_19.txt |
AC |
1001 ms |
1536 KB |