Codeforces Round #279 (Div. 2) D
来源:互联网 发布:exchange2013多域名 编辑:程序博客网 时间:2024/06/10 14:51
2014/11/24
当时太饿就去吃饭了,吃完回来写的还剩一个尾巴就结束了...结束了....
感觉比C简单嘛,= =C是那种你知道了就会不知道一定不会的题目。(弱狗的可怜之处:都不知道自己有哪些不会)
就是一个模拟, s1=X*2^a*3*b s2 = X *2^ a1*3^b1;
然后比较a,a1,b,b1 ,把它们减到相等 就好了 (3减一个的同时2 要加一个)
然后就完事了。别看代码很长,思路有了剩下的都是粘贴复制!
#include<stdio.h>#include<string.h>#include<math.h>using namespace std;int main(){__int64 a1 ,b1,a2,b2;while(~scanf("%I64d%I64d%I64d%I64d",&a1,&b1,&a2,&b2)) {__int64 s1,s2;int cnta1=0,cntb1=0,cnta2=0,cntb2=0;s1=a1*b1;s2=a2*b2;while(1){ if(s1%2==0) { s1/=2; cnta1++; } else { break; }}while(1){ if(s1%3==0) { cntb1++; s1/=3; } else { break; }}while(1){ if(s2%2==0) { cnta2++; s2/=2; } else { break; }}while(1){ if(s2%3==0) { cntb2++; s2/=3; } else { break; }}if(s1!=s2){printf("-1\n");}else {int cnt;if(cnta1 > cnta2){if(cntb1 > cntb2){cnta1-=cnta2;cntb1-=cntb2; cnta2 = cntb2 =0; cnt = cnta1+cntb1*2;}else{cnta1 -= cnta2;cntb2 -= cntb1;cnta2 = 0;cntb1 = 0;cnt =cntb2;}}else{if(cntb1 > cntb2){cntb1-=cntb2;cnta2-=cnta1;cnta1=0;cntb2=0;cnt =cntb1+cnta2;}else{cntb2-=cntb1;cnta2-=cnta1;cntb1=0;cnta1=0;cnt=cntb2+cnta2;}}cnt = cntb1+cntb2;while(cntb1){if(a1%3==0){a1/=3;a1*=2; cnta1++;cntb1--;}else {break;}}while(cntb1){if(b1%3==0){b1/=3;b1*=2;cnta1++;cntb1--;}else {break;}}while(cntb2){if(a2%3==0){a2/=3;a2*=2;cnta2++;cntb2--;}else {break;}}while(cntb2){if(b2%3==0){b2/=3;b2*=2;cnta2++;cntb2--;}else {break;}}if(cnta1 > cnta2){cnta1-=cnta2; cnta2 = 0;}else {cnta2-=cnta1;cnta1 = 0;}cnt+=cnta1+cnta2;while(cnta1){if(a1%2==0){a1/=2;cnta1--;}else {break;}}while(cnta1){if(b1%2==0){b1/=2;cnta1--;}else {break;}}while(cnta2){if(a2%2==0){a2/=2;cnta2--;}else{break;}}while(cnta2){if(b2%2==0){b2/=2;cnta2--;}else{break;}}printf("%d\n",cnt);printf("%I64d %I64d\n",a1,b1);printf("%I64d %I64d\n",a2,b2);} }return 0;}
0 0
- Codeforces Round #279 (Div. 2) D. Chocolate
- Codeforces Round #279 (Div. 2) D
- Codeforces Round #279 (Div. 2) D. Chocolate
- Codeforces Round #279 (Div. 2) D. Chocolate
- Codeforces Round #279 (Div. 2)D. Chocolate
- Codeforces Round #279 (Div. 2) D 暴力
- Codeforces Round #279 (Div. 2), problem: (D) Chocolate
- Codeforces Round #103 (Div. 2) D
- Codeforces Round #104 (Div. 2) D
- Codeforces Round #105 (Div. 2) D
- Codeforces Round #139 (Div. 2) D. Snake
- Codeforces Round #155 (Div. 2) D-rats
- Codeforces Round #159 (Div. 2) D sum
- Codeforces Round #184 (Div. 2) D、E
- Codeforces Round#186(Div 2) D
- codeforces Round # 187(Div.2) D
- Codeforces Round #191 (Div. 2) D
- Codeforces Round #194 (Div. 2) D. Chips
- C3P0的详细配置说明(com.mchange.v2.c3p0.ComboPooledDataSource)
- Linux的时间设置与同步(NTP)
- Android bluetooth介绍(四): a2dp connect流程分析
- javascript生成新浪微博短链接
- Git详解之二 Git基础
- Codeforces Round #279 (Div. 2) D
- Sipdroid简单分析
- Git详解之三 Git分支
- 级联动态搜索条件表单的创建
- Git详解之四 服务器上的Git
- 禁止Html5在手机上屏幕页面缩放
- 日语学习之沪江N4基础 20141124 -4
- Linux上配置主从数据库
- Git详解之五 分布式Git