結果

問題 No.1257 変わった平均値
ユーザー MZKiMZKi
提出日時 2020-10-16 23:31:41
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 2,065 bytes
コンパイル時間 2,154 ms
コンパイル使用メモリ 173,344 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-21 00:07:13
合計ジャッジ時間 3,127 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 1 ms
5,376 KB
testcase_02 AC 2 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 2 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 2 ms
5,376 KB
testcase_07 AC 2 ms
5,376 KB
testcase_08 AC 2 ms
5,376 KB
testcase_09 AC 2 ms
5,376 KB
testcase_10 AC 2 ms
5,376 KB
testcase_11 AC 2 ms
5,376 KB
testcase_12 AC 2 ms
5,376 KB
testcase_13 AC 2 ms
5,376 KB
testcase_14 AC 2 ms
5,376 KB
testcase_15 AC 2 ms
5,376 KB
testcase_16 AC 2 ms
5,376 KB
testcase_17 AC 2 ms
5,376 KB
testcase_18 AC 2 ms
5,376 KB
testcase_19 AC 2 ms
5,376 KB
testcase_20 WA -
testcase_21 WA -
testcase_22 AC 2 ms
5,376 KB
testcase_23 WA -
testcase_24 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
template<class T> inline bool chmin(T&a, T b){if(a > b){a = b; return true;}else{return false;}}
template<class T> inline bool chmax(T&a, T b){if(a < b){a = b; return true;}else{return false;}}
#define ll long long
#define double long double
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,n) for(int i=1;i<=(n);i++)
#define mod (ll)(1e9+7)
#define inf (ll)(3e18+7)
#define eps (double)(1e-9)
#define pi (double) acos(-1)
#define P pair<int,int>
#define PiP pair<int,pair<int,int>>
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
using namespace std;

bool solve1(ll a){
    while(a % 2 == 0)a /= 2;
    return (a == 1);
}

ll solve2(ll a){
    ll ret = 0;
    while(a % 2 == 0){
        a /= 2;
        ret++;
    }
    return ret;
}

int main() {
    vector<P> a(3);  
    ll d, e, f;
    cin >> a[0].first >> a[1].first >> a[2].first >> d >> e >> f;
    a[0].second = 1;
    a[1].second = 2;
    a[2].second = 3;
    ll mn = inf;
    vector<pair<ll,ll>> ans;
    do{ 
        if(d % a[0].first)continue;
        if(e % a[1].first)continue;
        if(f % a[2].first)continue;
        if(!solve1(d/a[0].first) || !solve1(e/a[1].first) || !solve1(f/a[2].first))continue;
        ll x = solve2(d/a[0].first);
        ll y = solve2(e/a[1].first);
        ll z = solve2(f/a[2].first);
        vector<pair<ll, ll>> b = {{x, a[0].second}, {y, a[1].second}, {z, a[2].second}};
        sort(rall(b));
        if(b[0].first-b[1].first == b[2].first){
            ll cnt = 2*b[1].first + 2 * (b[0].first-b[1].first);
            if(a[0].second != 1 || a[1].second != 2 || a[2].second != 3){cnt++;}
            if(chmin(mn, cnt)){
                ans = b;
            }
        }
    }while(next_permutation(all(a)));
    if(mn != inf){
        cout << "Yes" << endl;
        rep(i, 2*ans[1].first)cout << 1 << " " << ans[2].second << endl;
        ans[0].first -= ans[1].first;
        rep(i, 2*ans[0].first)cout << 1 << " " << ans[1].second << endl;
        if(mn % 2)cout << 2 << endl;
    }else cout << "No" << endl;
}
0