#include #define MOD 1000000007LL using namespace std; typedef long long ll; typedef pair P; typedef pair PP; int n; ll gcd(ll a,ll b){ if(b==0LL)return a; return gcd(b,a%b); } ll lcm(ll a,ll b){ return a/gcd(a,b)*b; } void f(vector& a,vector& c,vector& d,vector& s){ for(int i=0;i a,b,a_gr,a_ord,a_size,b_gr,b_ord,b_size; map > mp; int main(void){ scanf("%d",&n); a=b=a_ord=b_ord=vector(n,0); a_gr=b_gr=vector(n,-1); f(a,a_gr,a_ord,a_size); f(b,b_gr,b_ord,b_size); ll ans=0; for(int i=0;i >::iterator it=mp.begin(); for(;it!=mp.end();it++){ P tmp=it->first.first; vector

vp=it->second; int A=a_size[tmp.first],B=b_size[tmp.second],S=vp.size(); ll l=lcm(A,B),g=gcd(A,B),P=vp[0].first,Q=vp[0].second; vector u(S+1),w(B/g); u[S]=l; int j=Q/g; for(int i=0;i