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
AC × 4
AC × 19
WA × 4
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