Maison > interface Web > tutoriel HTML > le corps du texte

Codeforces Round #279 (Div. 2) d_html/css_WEB-ITnose

WBOY
Libérer: 2016-06-21 09:20:02
original
829 Les gens l'ont consulté

/** * @brief Codeforces Round #279 (Div. 2) d * @file d.cpp * @author 面码 * @created 2014/12/09 10:58 * @edited  2014/12/09 10:58 * @type math greedy * @note 自己的AC不了,参考别人的,重点是2和3都是质数,所以可以使用贪心求解。 */#include <fstream>#include <iostream>#include <cstring>#include <map>#include <utility>using namespace std;#define max(a, b)  ((a) > (b) ? (a) : (b))#define min(a, b)  ((a) > (b) ? (b) : (a)) #define abs(a)     ((a) >  0  ? (a) : (0 - (a)))#define CLR(vec)   memset(vec, 0, sizeof(vec))#define MAXN 4000#ifdef DEBUGifstream in;ofstream out;#define CIN in#define COUT out#else#define CIN cin#define COUT cout#endiftypedef long long int ll;ll a, b, c, d;ll ans, a1, b1, c1, d1;ll c12, c13, c22, c23;int main(void){    ios_base::sync_with_stdio(0);#ifdef DEBUG    CIN.open("./in",  ios::in);    COUT.open("./out",  ios::out);#endif    CIN >> a >> b >> c >> d;    ans = 0;    a1 = a, b1 = b, c1 = c, d1 = d;    c13 = 0; c23 = 0;    while(0 == a1%3 && a1) a1 /= 3, c13++;    while(0 == b1%3 && b1) b1 /= 3, c13++;    while(0 == c1%3 && c1) c1 /= 3, c23++;    while(0 == d1%3 && d1) d1 /= 3, c23++;    while(c13 > c23 && 0 == a%3 && a) c13--, a = a*2/3, ans++;    while(c13 > c23 && 0 == b%3 && b) c13--, b = b*2/3, ans++;    while(c13 < c23 && 0 == c%3 && c) c23--, c = c*2/3, ans++;    while(c13 < c23 && 0 == d%3 && d) c23--, d = d*2/3, ans++;    a1 = a, b1 = b, c1 = c, d1 = d;    c12 = 0; c22 = 0;    while(0 == a1%2 && a1) a1 /= 2, c12++;    while(0 == b1%2 && b1) b1 /= 2, c12++;    while(0 == c1%2 && c1) c1 /= 2, c22++;    while(0 == d1%2 && d1) d1 /= 2, c22++;    while(c12 > c22 && 0 == a%2 && a) c12--, a /= 2, ans++;    while(c12 > c22 && 0 == b%2 && b) c12--, b /= 2, ans++;    while(c12 < c22 && 0 == c%2 && c) c22--, c /= 2, ans++;    while(c12 < c22 && 0 == d%2 && d) c22--, d /= 2, ans++;    if(a *b != c*d){        COUT << "-1\n";        return 0;    }    COUT << ans << "\n";    COUT << a << " " << b << "\n";    COUT << c << " " << d << "\n";    return 0;}
Copier après la connexion


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal