Submission #1771999
Source Code Expand
import std.algorithm, std.conv, std.range, std.stdio, std.string; void main() { auto rd = readln.split.to!(int[]), n = rd[0], m = rd[1], k = rd[2]; auto c = readln.split; auto scc = StronglyConnectedComponents!int(n); foreach (i; 0..m) { auto rd2 = readln.splitter; auto a = rd2.front.to!int-1; rd2.popFront(); auto b = rd2.front.to!int-1; scc.addEdge(a, b); } auto r = scc.run(), nr = r.length.to!int, s = new string[](nr); int[int] buf; foreach (int i, ri; r) { char[] sb; foreach (rij; ri) { buf[rij] = i; sb ~= c[rij][0]; } (cast(ubyte[])sb).sort(); s[i] = sb.to!string; } auto g = new int[][](nr); foreach (u; 0..n) foreach (v; scc.adj[u]) if (buf[u] != buf[v]) g[buf[u]] ~= buf[v]; auto d = new int[](nr), dp = new string[][](nr, n+1); foreach_reverse (u; 0..nr) { foreach (v; g[u]) d[u] = max(d[u], d[v]); d[u] += s[u].length.to!int; foreach (i; 0..s[u].length+1) dp[u][i] = s[u][0..i]; dp[u][s[u].length+1..$] = "|"; foreach (i; 0..s[u].length+1) { foreach (v; g[u]) foreach (j; 0..d[v]+1) dp[u][i+j] = min(dp[u][i+j], s[u][0..i] ~ dp[v][j]); } } auto ans = "|"; foreach (i; 0..nr) if (d[i] >= k) ans = min(ans, dp[i][k]); writeln(ans == "|" ? "-1" : ans); } struct StronglyConnectedComponents(Node) { import std.algorithm, std.container; Node n; Node[][] adj, rdj; this(Node n) { this.n = n; adj = new Node[][](n); rdj = new Node[][](n); } auto addEdge(Node src, Node dst) { adj[src] ~= dst; rdj[dst] ~= src; } auto dfs(Node s, Node[][] adj, ref bool[] visited) { auto q = SList!Node(s); visited[s] = true; Node[] comp; while (!q.empty) { auto u = q.front; q.removeFront(); foreach (v; adj[u]) if (!visited[v]) { visited[v] = true; q.insertFront(v); } comp ~= u; } comp.reverse(); return comp; } auto run() { Node[] ord; Node[][] scc; auto visited = new bool[](n); foreach (u; 0..n) if (!visited[u]) ord ~= dfs(u, adj, visited); visited[] = false; foreach_reverse (u; ord) if (!visited[u]) scc ~= dfs(u, rdj, visited); return scc; } }
Submission Info
Submission Time | |
---|---|
Task | C - 有向グラフ |
User | tesh |
Language | D (DMD64 v2.070.1) |
Score | 0 |
Code Size | 2413 Byte |
Status | WA |
Exec Time | 20 ms |
Memory | 14204 KB |
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 100 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt |
All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask0_sample_04.txt, subtask1_manual01.txt, subtask1_manual02.txt, subtask1_manual03.txt, subtask1_manual04.txt, subtask1_manual05.txt, subtask1_manual06.txt, subtask1_manual07.txt, subtask1_manual08.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt, subtask1_special05.txt, subtask1_special06.txt, subtask1_special07.txt, subtask1_special08.txt, subtask1_special09.txt, subtask1_special10.txt, subtask1_special11.txt, subtask1_special12.txt, subtask1_special13.txt, subtask1_special14.txt, subtask1_special15.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 1 ms | 256 KB |
subtask0_sample_02.txt | AC | 1 ms | 256 KB |
subtask0_sample_03.txt | AC | 1 ms | 256 KB |
subtask0_sample_04.txt | AC | 1 ms | 256 KB |
subtask1_manual01.txt | AC | 1 ms | 256 KB |
subtask1_manual02.txt | AC | 1 ms | 256 KB |
subtask1_manual03.txt | AC | 1 ms | 256 KB |
subtask1_manual04.txt | AC | 1 ms | 256 KB |
subtask1_manual05.txt | AC | 1 ms | 256 KB |
subtask1_manual06.txt | AC | 1 ms | 256 KB |
subtask1_manual07.txt | AC | 1 ms | 256 KB |
subtask1_manual08.txt | AC | 1 ms | 256 KB |
subtask1_random01.txt | WA | 13 ms | 10620 KB |
subtask1_random02.txt | AC | 12 ms | 10492 KB |
subtask1_random03.txt | AC | 14 ms | 8956 KB |
subtask1_random04.txt | WA | 11 ms | 8060 KB |
subtask1_random05.txt | AC | 10 ms | 8828 KB |
subtask1_special01.txt | AC | 2 ms | 380 KB |
subtask1_special02.txt | AC | 20 ms | 11772 KB |
subtask1_special03.txt | AC | 20 ms | 13436 KB |
subtask1_special04.txt | AC | 20 ms | 12156 KB |
subtask1_special05.txt | AC | 20 ms | 11772 KB |
subtask1_special06.txt | AC | 13 ms | 9084 KB |
subtask1_special07.txt | AC | 15 ms | 11004 KB |
subtask1_special08.txt | AC | 14 ms | 10364 KB |
subtask1_special09.txt | AC | 14 ms | 10364 KB |
subtask1_special10.txt | AC | 14 ms | 10492 KB |
subtask1_special11.txt | AC | 13 ms | 8444 KB |
subtask1_special12.txt | AC | 12 ms | 8700 KB |
subtask1_special13.txt | AC | 12 ms | 9084 KB |
subtask1_special14.txt | AC | 3 ms | 4092 KB |
subtask1_special15.txt | AC | 20 ms | 14204 KB |