Submission #1693892
Source Code Expand
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Text; class Simple { int K, N; string[] v, w; void Solve() { //input K = io.Int; N = io.Int; v = new string[N]; w = new string[N]; for (int i = 0; i < N;++i){ v[i] = io.String; w[i] = io.String; } //cal //文字の長さを列挙 var res = gRangedList(K, 1, 3); //各文字の長さを決定 foreach (var list in res) { //検証 var f = true; for (int i = 0; i < N;++i){ var len = 0; foreach(var c in v[i]) len += list[int.Parse(c.ToString()) - 1]; if (len != w[i].Length) { f = false; break; } } //文字の長さの条件を満たすものが見つかった if (f){ var ans = new string[K]; for (int i = 0; i < N; ++i) { var ind = 0; foreach (var c in v[i]){ var c2i = int.Parse(c.ToString()) - 1; var len = list[c2i]; if(ans[c2i]==null||ans[c2i]==""||ans[c2i]==w[i].Substring(ind, len)){ ans[c2i] = w[i].Substring(ind, len); ind += len; }else{ //文字が合わないことが判明 goto OUT; } } } foreach (var val in ans) { Console.WriteLine(val); } return; } OUT:; } } void _gRangedList(int n, List<int> list, List<List<int>> result,int rs,int re) { if (n==0) {result.Add(list);return;} for (int i = rs; i <= re; ++i) { var newList = list.ToList(); newList.Add(i); _gRangedList(n - 1, newList, result,rs,re); } } List<List<int>> gRangedList(int content,int rangeStart,int rangeEnd) { var result = new List<List<int>>(); _gRangedList(content, new List<int>(), result,rangeStart,rangeEnd); return result; } SimpleIO io = new SimpleIO(); public static void Main(string[] args) { new Simple().Stream(); } void Stream() {Solve();io.writeFlush();} } class SimpleIO { string[] nextBuffer; int BufferCnt; char[] cs = new char[] { ' ' }; StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false }; public SimpleIO() { nextBuffer = new string[0]; BufferCnt = 0; Console.SetOut(sw); } public string Next() { if (BufferCnt < nextBuffer.Length) return nextBuffer[BufferCnt++]; string st = Console.ReadLine(); while (st == "") st = Console.ReadLine(); nextBuffer = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); BufferCnt = 0; return nextBuffer[BufferCnt++]; } public string String => Next(); public char Char => char.Parse(String); public int Int => int.Parse(String); public long Long => long.Parse(String); public double Double => double.Parse(String); public void writeFlush() { Console.Out.Flush(); } }
Submission Info
Submission Time | |
---|---|
Task | D - 語呂合わせ |
User | rui0422 |
Language | C# (Mono 4.6.2.0) |
Score | 100 |
Code Size | 3767 Byte |
Status | AC |
Exec Time | 77 ms |
Memory | 22524 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 40 / 40 | 60 / 60 | ||||||
Status |
|
|
|
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 | 25 ms | 11328 KB |
sample-02.txt | AC | 24 ms | 9300 KB |
sample-03.txt | AC | 24 ms | 9172 KB |
sample-04.txt | AC | 25 ms | 13268 KB |
subtask1-01.txt | AC | 24 ms | 11092 KB |
subtask1-02.txt | AC | 24 ms | 11220 KB |
subtask1-03.txt | AC | 24 ms | 11092 KB |
subtask1-04.txt | AC | 24 ms | 9300 KB |
subtask1-05.txt | AC | 24 ms | 9172 KB |
subtask1-06.txt | AC | 25 ms | 11220 KB |
subtask1-07.txt | AC | 25 ms | 11220 KB |
subtask1-08.txt | AC | 24 ms | 11220 KB |
subtask1-09.txt | AC | 24 ms | 9044 KB |
subtask1-10.txt | AC | 24 ms | 11220 KB |
subtask1-11.txt | AC | 24 ms | 9172 KB |
subtask1-12.txt | AC | 25 ms | 11092 KB |
subtask1-13.txt | AC | 25 ms | 11092 KB |
subtask1-14.txt | AC | 24 ms | 11348 KB |
subtask1-15.txt | AC | 25 ms | 11220 KB |
subtask1-16.txt | AC | 24 ms | 9172 KB |
subtask1-17.txt | AC | 24 ms | 9172 KB |
subtask1-18.txt | AC | 24 ms | 9172 KB |
subtask1-19.txt | AC | 24 ms | 9300 KB |
subtask1-20.txt | AC | 25 ms | 11348 KB |
subtask2-01.txt | AC | 40 ms | 21756 KB |
subtask2-02.txt | AC | 37 ms | 19708 KB |
subtask2-03.txt | AC | 44 ms | 19708 KB |
subtask2-04.txt | AC | 49 ms | 19708 KB |
subtask2-05.txt | AC | 35 ms | 17660 KB |
subtask2-06.txt | AC | 34 ms | 15612 KB |
subtask2-07.txt | AC | 66 ms | 20476 KB |
subtask2-08.txt | AC | 41 ms | 19708 KB |
subtask2-09.txt | AC | 69 ms | 16380 KB |
subtask2-10.txt | AC | 73 ms | 20476 KB |
subtask2-11.txt | AC | 77 ms | 22524 KB |
subtask2-12.txt | AC | 54 ms | 21756 KB |
subtask2-13.txt | AC | 38 ms | 15612 KB |
subtask2-14.txt | AC | 48 ms | 19708 KB |
subtask2-15.txt | AC | 42 ms | 21756 KB |
subtask2-16.txt | AC | 68 ms | 18428 KB |
subtask2-17.txt | AC | 33 ms | 15612 KB |
subtask2-18.txt | AC | 75 ms | 18428 KB |
subtask2-19.txt | AC | 70 ms | 18428 KB |
subtask2-20.txt | AC | 70 ms | 20476 KB |