Submission #1588358


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 N, M;
    //int[] a, b;
    bool[,] G;
    void Solve() {
        //input
        N = io.Int;
        M = io.Int;
        G = new bool[N, N];
        for (int i = 0; i < M;++i){
            var a = io.Int-1;
            var b = io.Int-1;
            G[a, b] = G[b, a] = true;
        }
        //cal
        bool[] visited = new bool[N];
        visited[0] = true;
        int ans = dfs(visited, 0);
        //res
        Console.WriteLine(ans);
    }
    int dfs(bool[] vis,int cur){
        if (vis.All(f => f)) return 1;
        int ret = 0;
        for (int i = 0; i < N;++i){
            if(G[cur,i]&&!vis[i]){
                vis[i] = true;
                ret += dfs(vis, i);
                vis[i] = false;
            }
        }
        return ret;
    }

    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 C - One-stroke Path
User rui0422
Language C# (Mono 4.6.2.0)
Score 300
Code Size 2163 Byte
Status AC
Exec Time 24 ms
Memory 13268 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt
Case Name Status Exec Time Memory
sample_01.txt AC 22 ms 11092 KB
sample_02.txt AC 21 ms 11220 KB
subtask_1_01.txt AC 21 ms 11220 KB
subtask_1_02.txt AC 22 ms 13268 KB
subtask_1_03.txt AC 21 ms 13268 KB
subtask_1_04.txt AC 24 ms 11220 KB
subtask_1_05.txt AC 21 ms 11220 KB
subtask_1_06.txt AC 21 ms 11220 KB
subtask_1_07.txt AC 21 ms 11220 KB
subtask_1_08.txt AC 21 ms 11220 KB
subtask_1_09.txt AC 22 ms 11220 KB
subtask_1_10.txt AC 21 ms 9172 KB
subtask_1_11.txt AC 21 ms 11220 KB
subtask_1_12.txt AC 22 ms 11220 KB
subtask_1_13.txt AC 23 ms 13268 KB