Submission #1001267


Source Code Expand

using System;
using System.Text;
using System.Collections.Generic;
class Solve{
    int N,M;
    public Solve(){}
    StringBuilder sb;
    public static int Main(){
        new Solve().Run();
        return 0;
    }
    void Run(){
        sb = new StringBuilder();
        Read();
        Calc();
        Console.Write(sb.ToString());
    }
    void Calc(){
        long[,,] d = new long[M+1,N,N+1];
        for(int i=0;i<M+1;i++){
            for(int j=0;j<N;j++){
                for(int k=0;k<N+1;k++){
                    if(i == 0){
                        if(j == 0 && k == 0){
                            d[i,j,k] = 1;
                        }
                        else{
                            d[i,j,k] = 0;
                        }
                    }
                    else{
                        d[i,j,k] = 0;
                    }
                }
            }
        }
        for(int i=1;i<M+1;i++){
            for(int j=0;j<N;j++){
                for(int k=j;k<N+1;k++){
                    if(k != 0){
                        d[i,j,k] = (d[i,j,k] + (d[i-1,j,k] * (k-j-1) % Define.mod)) % Define.mod;
                        d[i,k-1,k] = (d[i,k-1,k] + (d[i-1,j,k] * (j+1) % Define.mod)) % Define.mod;
                    }
                    if(k != N){
                        if(k == 0){
                            d[i,j,k+1] = (d[i,j,k+1] + d[i-1,j,k]) % Define.mod;
                        }
                        else{
                            d[i,j,k+1] = (d[i,j,k+1] + (d[i-1,j,k] * (N-k) % Define.mod)) % Define.mod;
                        }
                    }
                }
            }
        }
        sb.Append(d[M,N-1,N]+"\n");
    }
    void Read(){
        string[] str = Console.ReadLine().Split(' ');
        N = int.Parse(str[0]);
        M = int.Parse(str[1])+1;
    }    
}
public static class Define{
    public const long mod = 1000000007;
}

Submission Info

Submission Time
Task F - Road of the King
User leign
Language C# (Mono 4.6.2.0)
Score 1000
Code Size 1981 Byte
Status AC
Exec Time 2200 ms
Memory 215768 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 3
AC × 13
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
Case Name Status Exec Time Memory
01-01.txt AC 20 ms 2776 KB
01-02.txt AC 20 ms 2776 KB
01-03.txt AC 21 ms 2776 KB
01-04.txt AC 36 ms 4824 KB
01-05.txt AC 23 ms 3032 KB
01-06.txt AC 218 ms 21592 KB
01-07.txt AC 2049 ms 201176 KB
01-08.txt AC 2169 ms 212952 KB
01-09.txt AC 2184 ms 214360 KB
01-10.txt AC 2200 ms 215768 KB
sample-01.txt AC 20 ms 2776 KB
sample-02.txt AC 576 ms 56152 KB
sample-03.txt AC 1110 ms 109912 KB