제출 #1125199

#제출 시각아이디문제언어결과실행 시간메모리
1125199AlgorithmWarrior마술쇼 (APIO24_show)C++17
5 / 100
150 ms484 KiB
#include <bits/stdc++.h> #include "Alice.h" using namespace std; vector<pair<int,int>>Alice(){ long long x=setN(5000); int i; vector<pair<int,int>>tree; for(i=2;i<=5000;++i){ tree.push_back({x%(i-1)+1,i}); } return tree; }
#include <bits/stdc++.h> #include "Bob.h" using namespace std; __int128 gcd(__int128 a,__int128 b){ long long aa=a; long long bb=b; return __gcd(aa,bb); } __int128 bin_exp(__int128 base,__int128 exp,__int128 mod){ __int128 rez=1; while(exp){ if(exp&1){ rez=rez*base%mod; } base=base*base%mod; exp/=2; } return rez; } __int128 CRT(__int128 r1,__int128 m1,__int128 r2,__int128 m2){ __int128 g=gcd(m1,m2); __int128 x,k; __int128 dif=(r2-r1)/g; while(dif<0){ dif+=m2/g*1e9; } k=dif*bin_exp(m1/g,m2/g-2,m2/g)%(m2/g); x=m1*k+r1; return x; } long long Bob(vector<pair<int,int>>V){ __int128 x=0; __int128 mod=1; for(auto edge : V){ x=CRT(x,mod,edge.first-1,edge.second-1); if(mod>1e18/(1LL*edge.second-1)*gcd(mod,1LL*edge.second-1)) break; mod=mod/gcd(mod,1LL*edge.second-1)*(edge.second-1); } return x; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...