結果

問題 No.1156 Nada Picnic 2
ユーザー ooooobaoooooba
提出日時 2021-06-20 16:05:07
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 29 ms / 2,000 ms
コード長 1,512 bytes
コンパイル時間 1,058 ms
コンパイル使用メモリ 119,772 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-06-22 22:28:36
合計ジャッジ時間 1,603 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 7 ms
5,248 KB
testcase_01 AC 11 ms
5,376 KB
testcase_02 AC 29 ms
5,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <algorithm>
#include <array>
#include <cmath>
#include <cstdio>
#include <deque>
#include <iomanip>
#include <iostream>
#include <numeric>
#include <optional>
#include <queue>
#include <set>
#include <stack>
#include <unordered_map>
#include <unordered_set>
#include <vector>

using namespace std;

int main() {
    int32_t n;
    cin >> n;
    vector<int32_t> d(10);
    for (auto i = 0; i < 10; ++i) {
        d[i] = i;
    }
    do {
        int32_t x, y, z;
        bool valid;
        if (n == 1) {
            x = d[0] * 100 + d[1] * 10 + d[2];
            y = d[3] * 100 + d[4] * 10 + d[5];
            z = d[1] * 1000 + d[6] * 100 + d[2] * 10 + d[1];
            valid = d[0] * d[3] * d[1] > 0;
        } else if (n == 2) {
            x = d[0] * 1000 + d[0] * 100 + d[1] * 10 + d[2];
            y = d[3] * 1000 + d[4] * 100 + d[5] * 10 + d[6];
            z = d[7] * 10000 + d[8] * 1000 + d[1] * 100 + d[2] * 10 + d[9];
            valid = d[0] * d[3] * d[7] > 0;
        } else {
            x = d[0] * 100000 + d[1] * 10000 + d[2] * 1000 + d[3] * 100 +
                d[4] * 10 + d[5];
            y = d[6] * 10000 + d[3] * 1000 + d[5] * 100 + d[7] * 10 + d[8];
            z = d[1] * 100000 + d[3] * 10000 + d[9] * 1000 + d[4] * 100 +
                d[3] * 10 + d[9];
            valid = d[0] * d[6] * d[1] > 0;
        }
        if (valid && x + y == z) {
            cout << z << endl;
            return 0;
        }
    } while (next_permutation(d.begin(), d.end()));
    return 0;
}
0