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
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 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