Submission #1651836


Source Code Expand

#include <cmath>
#include <iostream>
#include <string>
#include <vector>

int main(void) {
  int K, N;
  std::vector<int> v, len;
  std::vector<std::string> w, s = {};
  std::string str;
  std::cin >> K >> N;
  v.resize(N);
  w.resize(N);
  s.resize(K);
  len.resize(K);
  for (int i = 0; i < N; ++i) {
    std::cin >> v[i] >> w[i];
  }
  for (int i = 0; i < K; ++i) {
    len[i] = 1;
  }

  for (int k = 0; k < std::pow(3, K); ++k) {
    ++len[0];
    for (int l = 0; len[l] >= 4; ++l) {
      len[l] = 1;
      ++len[l+1];
    }

    for (int n = 0; n < N; ++n) {
      int num_len = 0;
      for (int i = 0; i < (int)(std::log10(v[n]) + 1); ++i) {
        num_len += len[v[n] % (int)std::pow(10, i+1) / (int)std::pow(10, i) - 1];
      }
      if (num_len != w[n].size()) {
        n = N;
      } else if (n >= N - 1) {

        for (int k0 = 0; k0 < K; ++k0) s[k0] = "";
        for (int n0 = 0; n0 < N; ++n0) {
          int sum = 0;
          for (int i0 = (int)std::log10(v[n0]); i0 >= 0; --i0) {
            // for (int k0 = 0; k0 < K; ++k0) std::cout << s[k0] << (k0 < K - 1 ? "," : "\n");
            int num = v[n0] % (int)std::pow(10, i0+1) / (int)std::pow(10, i0);
            // printf("num:%d, s:%s, w:%s\n", num, s[num-1].c_str(), w[n0].substr(sum, len[num-1]).c_str());
            if (s[num-1] == "") {
              s[num-1] = w[n0].substr(sum, len[num-1]);
            } else if(s[num-1] != w[n0].substr(sum, len[num-1])) {
              n0 = N;
              break;
            }
            sum += len[num-1];
          }

          if (n0 == N - 1) {
            // std::cout << "===== finish =====" << std::endl;
            for (int i = 0; i < K; ++i) {
              // std::cout << i+1 << ": " << s[i] << std::endl;
              std::cout << s[i] << std::endl;
            }
            return 0;
          }
        }

      }
    }
  }

  return 0;
}

Submission Info

Submission Time
Task D - 語呂合わせ
User gidoichi
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1951 Byte
Status AC
Exec Time 29 ms
Memory 384 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 3 ms 384 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 2 ms 256 KB
subtask1-10.txt AC 1 ms 256 KB
subtask1-11.txt AC 2 ms 256 KB
subtask1-12.txt AC 1 ms 256 KB
subtask1-13.txt AC 2 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 2 ms 256 KB
subtask2-01.txt AC 6 ms 256 KB
subtask2-02.txt AC 4 ms 256 KB
subtask2-03.txt AC 12 ms 256 KB
subtask2-04.txt AC 17 ms 256 KB
subtask2-05.txt AC 12 ms 256 KB
subtask2-06.txt AC 10 ms 256 KB
subtask2-07.txt AC 26 ms 256 KB
subtask2-08.txt AC 3 ms 256 KB
subtask2-09.txt AC 29 ms 256 KB
subtask2-10.txt AC 29 ms 256 KB
subtask2-11.txt AC 29 ms 256 KB
subtask2-12.txt AC 13 ms 256 KB
subtask2-13.txt AC 14 ms 256 KB
subtask2-14.txt AC 9 ms 256 KB
subtask2-15.txt AC 8 ms 256 KB
subtask2-16.txt AC 5 ms 256 KB
subtask2-17.txt AC 29 ms 256 KB
subtask2-18.txt AC 29 ms 256 KB
subtask2-19.txt AC 29 ms 256 KB
subtask2-20.txt AC 29 ms 256 KB