#include<iostream> #include<cstdio> #include<cmath> #define er long long using namespace std; er n,p1,a,p2,b; er adv(er a,er b,er &r,er &t){ er k,tmp; if(b==0){r=1;t=0;return a;} k=adv(b,a%b,r,t); tmp=r;r=t;t=tmp-a/b*t; return k; } int main(){ cin>>n>>p1>>a>>p2>>b; er x,y; er gys=adv(a,b,x,y); er t1=ceil(-1.0*n*x/b),t2=floor(1.0*n*y/a),t;//t1,t2分别为k的两个范围 if(n%gys!=0||t1>t2){puts("-1");return 0;}//无解的情况
//判断一次函数单调性 if(b*p1>a*p2)t=t1; else t=t2; er ans1=n*x/gys+b*t/gys,ans2=n*y/gys-a*t/gys;//ans1就是x的解,ans2就是y的解 cout<<ans1*p1+ans2*p2; }