【51Nod】1429 巧克力 (假·五級演算法題) 瞎搞
阿新 • • 發佈:2019-02-11
不知不覺就過了
C++ 15 ms 1916 KB Accepted 2017/10/27 11:42:58 80 #10 ms 1916 KB Accepted #20 ms 1916 KB Accepted #30 ms 1912 KB Accepted #40 ms 1916 KB Accepted #50 ms 1916 KB Accepted #60 ms 1916 KB Accepted #70 ms 1916 KB Accepted #815 ms 1916 KB Accepted #90 ms 1916 KB Accepted#include <cstdio> #include <algorithm> using namespace std; long long a,b,c,d,A2,B2,A3,B3,a2,a3,b2,b3,c2,c3,d2,d3,ans; void devide(long long &x,long long &two,long long &tre) { while (!(x&1)) x>>=1,two++; while (x%3==0) x/=3,tre++; return; } int main(void) { scanf("%lld%lld%lld%lld",&a,&b,&c,&d); devide(a,a2,a3),devide(b,b2,b3),devide(c,c2,c3),devide(d,d2,d3); if (a*b!=c*d) { printf("-1\n"); return 0; } A2=a2+b2,A3=a3+b3,B2=c2+d2,B3=c3+d3; long long tmp=min(B3,A3); B3-=tmp,A3-=tmp; if (A3>0) A2+=A3,ans+=A3; if (B3>0) B2+=B3,ans+=B3; tmp=min(A2,B2); A2-=tmp,B2-=tmp; if (A2>0) ans+=A2,A2=0; if (B2>0) ans+=B2,B2=0; printf("%lld\n",ans); return 0; }