提出 #24190114


ソースコード 拡げる

#include <atcoder/scc>

#ifndef LOCAL
#include <bits/stdc++.h>
using namespace std;
#define debug(...) 42
#else
#include "Debug.hpp"
#endif

const int kN = 53 * 53 * 53;

class Task {
 public:
  void Perform() {
    Read();
    Solve();
  }
 
 private:
  int n; 
  vector<string> s;
  vector<vector<int>> graph;
  vector<int> in;
  vector<int> state_type;

  void Read() {
    cin >> n;
    s.resize(n);
    for (auto &i : s) {
      cin >> i;
    } 
  }
 
  void Solve() {
    graph.resize(kN + 1);
    in.resize(kN + 1);
    for (auto &i : s) {
      int to = GetHash(i.substr(0, 3));
      int from = GetHash(i.substr(i.size() - 3));
      graph[from].push_back(to);
      ++in[to];
    }
    state_type = vector(kN + 1, -1);
    for (int i = 1; i <= kN; ++i) {
      if (in[i] == 0) {
        state_type[i] = 0;
        Dfs(i);
      }
    }
    for (auto &i : s) {
      int ans = state_type[GetHash(i.substr(i.size() - 3))];
      if (ans == 0) {
        cout << "Takahashi";
      } else if (ans == 1) {
        cout << "Aoki";
      } else {
        cout << "Draw";
      }
      cout << '\n';
    }
  }

  int GetHash(string t) {
    int res = 0;
    int pw = 1;
    for (int i = 0; i < 3; ++i) {
      res += pw * CharToDig(t[i]);
      pw *= 53;
    }
    return res;
  }

  int CharToDig(char ch) {
    if ('a' <= ch && ch <= 'z') {
      return ch - 'a' + 1;
    } else {
      return ch - 'A' + 27;
    }
  }

  void Dfs(int u) {
    for (auto &v : graph[u]) {
      if (state_type[v] != -1) continue;
      if (state_type[u] == 0) {
        state_type[v] = 1;
      } else if (--in[v] == 0) {
        state_type[v] = 0;
      } else {
        continue;
      }
      Dfs(v);
    }
  }
};
 
int main() {
  ios_base::sync_with_stdio(false), cin.tie(nullptr);
  Task t;
  t.Perform();
  return 0;
}

提出情報

提出日時
問題 E - Shiritori
ユーザ tauhrick
言語 C++ (GCC 9.2.1)
得点 500
コード長 1911 Byte
結果 AC
実行時間 80 ms
メモリ 23232 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 63
セット名 テストケース
Sample sample_00.txt, sample_01.txt, sample_02.txt
All case_00.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt, case_16.txt, case_17.txt, case_18.txt, case_19.txt, case_20.txt, case_21.txt, case_22.txt, case_23.txt, case_24.txt, case_25.txt, case_26.txt, case_27.txt, case_28.txt, case_29.txt, case_30.txt, case_31.txt, case_32.txt, case_33.txt, case_34.txt, case_35.txt, case_36.txt, case_37.txt, case_38.txt, case_39.txt, case_40.txt, case_41.txt, case_42.txt, case_43.txt, case_44.txt, case_45.txt, case_46.txt, case_47.txt, case_48.txt, case_49.txt, case_50.txt, case_51.txt, case_52.txt, case_53.txt, case_54.txt, case_55.txt, case_56.txt, case_57.txt, case_58.txt, case_59.txt, sample_00.txt, sample_01.txt, sample_02.txt
ケース名 結果 実行時間 メモリ
case_00.txt AC 71 ms 23232 KiB
case_01.txt AC 72 ms 23084 KiB
case_02.txt AC 79 ms 23132 KiB
case_03.txt AC 72 ms 23028 KiB
case_04.txt AC 68 ms 23148 KiB
case_05.txt AC 60 ms 16588 KiB
case_06.txt AC 60 ms 16428 KiB
case_07.txt AC 60 ms 16660 KiB
case_08.txt AC 60 ms 16652 KiB
case_09.txt AC 56 ms 16592 KiB
case_10.txt AC 75 ms 17380 KiB
case_11.txt AC 74 ms 17328 KiB
case_12.txt AC 80 ms 17428 KiB
case_13.txt AC 72 ms 17284 KiB
case_14.txt AC 75 ms 17288 KiB
case_15.txt AC 8 ms 7880 KiB
case_16.txt AC 9 ms 7908 KiB
case_17.txt AC 8 ms 7780 KiB
case_18.txt AC 11 ms 7812 KiB
case_19.txt AC 12 ms 7784 KiB
case_20.txt AC 8 ms 7920 KiB
case_21.txt AC 13 ms 7712 KiB
case_22.txt AC 7 ms 7772 KiB
case_23.txt AC 59 ms 16428 KiB
case_24.txt AC 54 ms 16640 KiB
case_25.txt AC 52 ms 16656 KiB
case_26.txt AC 71 ms 23092 KiB
case_27.txt AC 72 ms 23192 KiB
case_28.txt AC 71 ms 23132 KiB
case_29.txt AC 63 ms 18336 KiB
case_30.txt AC 66 ms 18436 KiB
case_31.txt AC 68 ms 18440 KiB
case_32.txt AC 60 ms 14744 KiB
case_33.txt AC 78 ms 17320 KiB
case_34.txt AC 70 ms 16628 KiB
case_35.txt AC 28 ms 10460 KiB
case_36.txt AC 44 ms 12172 KiB
case_37.txt AC 67 ms 15836 KiB
case_38.txt AC 68 ms 15700 KiB
case_39.txt AC 50 ms 13688 KiB
case_40.txt AC 56 ms 13628 KiB
case_41.txt AC 31 ms 10788 KiB
case_42.txt AC 51 ms 14004 KiB
case_43.txt AC 38 ms 11116 KiB
case_44.txt AC 41 ms 12152 KiB
case_45.txt AC 28 ms 9944 KiB
case_46.txt AC 66 ms 16220 KiB
case_47.txt AC 24 ms 10724 KiB
case_48.txt AC 49 ms 14844 KiB
case_49.txt AC 38 ms 12572 KiB
case_50.txt AC 53 ms 16004 KiB
case_51.txt AC 53 ms 15108 KiB
case_52.txt AC 52 ms 15024 KiB
case_53.txt AC 61 ms 16328 KiB
case_54.txt AC 51 ms 14796 KiB
case_55.txt AC 18 ms 9196 KiB
case_56.txt AC 42 ms 12956 KiB
case_57.txt AC 26 ms 11796 KiB
case_58.txt AC 52 ms 18508 KiB
case_59.txt AC 70 ms 22928 KiB
sample_00.txt AC 10 ms 7876 KiB
sample_01.txt AC 14 ms 7824 KiB
sample_02.txt AC 8 ms 7948 KiB