提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |