Submission #8446559


Source Code Expand

#include "bits/stdc++.h"
using namespace std;
using ll     = long long;
using pii    = pair<int, int>;
using pll    = pair<ll, ll>;
using vi     = vector<int>;
using vl     = vector<ll>;
using vvi    = vector<vi>;
using vvl    = vector<vl>;
const ll INF = 1LL << 60;
const ll MOD = 1000000007;
template <class T>
bool chmax(T &a, const T &b) {
    return (a < b) ? (a = b, 1) : 0;
}
template <class T>
bool chmin(T &a, const T &b) {
    return (b < a) ? (a = b, 1) : 0;
}
template <class C>
void print(const C &c, std::ostream &os = std::cout) {
    std::copy(std::begin(c), std::end(c), std::ostream_iterator<typename C::value_type>(os, " "));
    os << std::endl;
}

int main() {
    int k, n;
    cin >> k >> n;
    vector<string> v(n), w(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i] >> w[i];
    }
    int comb = 1;
    for (int i = 0; i < k; ++i) {
        comb *= 3;
    }
    for (int i = 0; i < comb; ++i) {
        vi num(k, 1);
        int threes = i;
        for (int j = 0; j < k; ++j) {
            num[j] += threes % 3;
            threes /= 3;
        }
        vector<string> ret(k, "-");
        bool ok = true;
        for (int j = 0; j < n; ++j) {
            int tot = 0;
            for (int k = 0; k < v[j].size(); ++k) {
                tot += num[v[j][k] - '1'];
            }
            if (tot != w[j].size()) {
                ok = false;
                break;
            }
            int idx = 0;
            for (int k = 0; k < v[j].size(); ++k) {
                if (ret[v[j][k] - '1'] == "-")
                    ret[v[j][k] - '1'] = w[j].substr(idx, num[v[j][k] - '1']);
                else if (ret[v[j][k] - '1'] != w[j].substr(idx, num[v[j][k] - '1'])) {
                    ok = false;
                    break;
                }
                idx += num[v[j][k] - '1'];
            }
        }
        if (!ok)
            continue;
        else {
            for (auto &r : ret) {
                cout << r << "\n";
            }
            return 0;
        }
    }

    return 0;
}

Submission Info

Submission Time
Task D - 語呂合わせ
User kibuna
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2118 Byte
Status AC
Exec Time 7 ms
Memory 256 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 40 / 40 60 / 60
Status
AC × 4
AC × 23
AC × 44
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt
Subtask2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt
Case Name Status Exec Time Memory
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB
sample-04.txt AC 1 ms 256 KB
subtask1-01.txt AC 1 ms 256 KB
subtask1-02.txt AC 1 ms 256 KB
subtask1-03.txt AC 1 ms 256 KB
subtask1-04.txt AC 1 ms 256 KB
subtask1-05.txt AC 1 ms 256 KB
subtask1-06.txt AC 1 ms 256 KB
subtask1-07.txt AC 1 ms 256 KB
subtask1-08.txt AC 1 ms 256 KB
subtask1-09.txt AC 1 ms 256 KB
subtask1-10.txt AC 1 ms 256 KB
subtask1-11.txt AC 1 ms 256 KB
subtask1-12.txt AC 1 ms 256 KB
subtask1-13.txt AC 1 ms 256 KB
subtask1-14.txt AC 1 ms 256 KB
subtask1-15.txt AC 1 ms 256 KB
subtask1-16.txt AC 1 ms 256 KB
subtask1-17.txt AC 1 ms 256 KB
subtask1-18.txt AC 1 ms 256 KB
subtask1-19.txt AC 1 ms 256 KB
subtask1-20.txt AC 1 ms 256 KB
subtask2-01.txt AC 3 ms 256 KB
subtask2-02.txt AC 2 ms 256 KB
subtask2-03.txt AC 5 ms 256 KB
subtask2-04.txt AC 5 ms 256 KB
subtask2-05.txt AC 6 ms 256 KB
subtask2-06.txt AC 3 ms 256 KB
subtask2-07.txt AC 5 ms 256 KB
subtask2-08.txt AC 2 ms 256 KB
subtask2-09.txt AC 5 ms 256 KB
subtask2-10.txt AC 6 ms 256 KB
subtask2-11.txt AC 5 ms 256 KB
subtask2-12.txt AC 4 ms 256 KB
subtask2-13.txt AC 7 ms 256 KB
subtask2-14.txt AC 6 ms 256 KB
subtask2-15.txt AC 5 ms 256 KB
subtask2-16.txt AC 2 ms 256 KB
subtask2-17.txt AC 1 ms 256 KB
subtask2-18.txt AC 6 ms 256 KB
subtask2-19.txt AC 6 ms 256 KB
subtask2-20.txt AC 6 ms 256 KB