Submission #5484774


Source Code Expand

#include<stdio.h>
#include<stdlib.h>
#include<stdint.h>
#include<inttypes.h>

typedef int32_t i32;
typedef int64_t i64;

const i32 mod = 1000000007;

#define POS(i, j, k) ((((i) & 1) * (n + 1) + (j)) * (n + 1) + (k))

void run (void) {
  i32 n, m;
  scanf ("%" SCNi32 "%" SCNi32, &n, &m);
  i32 *dp = (i32 *) calloc (2 * (n + 1) * (n + 1), sizeof (i32));
  dp[POS(0, n, 0)] = 1;
  for (i32 i = 1; i <= m; ++i) {
    for (i32 j = 1; j <= n; ++j) {
      for (i32 k = 0; k <= n - j; ++k) {
        i64 local = (i64) j * dp[POS(i - 1, j + k, 0)];
        if (k > 0) local += (i64) k * dp[POS(i - 1, j, k)];
        if (n - j - k > 0) local += (i64) (n - j - k) * dp[POS(i - 1, j, k + 1)];
        dp[POS(i, j, k)] = local % mod;
      }
    }
  }
  printf ("%" PRIi32 "\n", dp[POS(m, 1, 0)]);
}

int main (void) {
  run();
  return 0;
}

Submission Info

Submission Time
Task F - Road of the King
User sansen
Language C (GCC 5.4.1)
Score 1000
Code Size 868 Byte
Status AC
Exec Time 48 ms
Memory 896 KB

Compile Error

./Main.c: In function ‘run’:
./Main.c:15:3: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%" SCNi32 "%" SCNi32, &n, &m);
   ^

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 3
AC × 16
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, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 128 KB
01-02.txt AC 1 ms 128 KB
01-03.txt AC 1 ms 128 KB
01-04.txt AC 1 ms 896 KB
01-05.txt AC 1 ms 128 KB
01-06.txt AC 5 ms 256 KB
01-07.txt AC 45 ms 768 KB
01-08.txt AC 47 ms 896 KB
01-09.txt AC 48 ms 896 KB
01-10.txt AC 48 ms 896 KB
sample-01.txt AC 1 ms 128 KB
sample-02.txt AC 13 ms 384 KB
sample-03.txt AC 24 ms 896 KB