結果

問題 No.616 へんなソート
ユーザー akakimidoriakakimidori
提出日時 2018-08-27 14:21:09
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 79 ms / 2,000 ms
コード長 649 bytes
コンパイル時間 201 ms
コンパイル使用メモリ 30,080 KB
実行使用メモリ 54,256 KB
最終ジャッジ日時 2024-07-01 04:07:12
合計ジャッジ時間 1,355 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 1 ms
5,376 KB
testcase_02 AC 1 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 1 ms
5,376 KB
testcase_08 AC 1 ms
5,376 KB
testcase_09 AC 1 ms
5,376 KB
testcase_10 AC 1 ms
5,376 KB
testcase_11 AC 1 ms
5,376 KB
testcase_12 AC 2 ms
5,376 KB
testcase_13 AC 28 ms
19,200 KB
testcase_14 AC 2 ms
5,376 KB
testcase_15 AC 1 ms
5,376 KB
testcase_16 AC 1 ms
5,376 KB
testcase_17 AC 14 ms
10,240 KB
testcase_18 AC 3 ms
5,376 KB
testcase_19 AC 4 ms
5,376 KB
testcase_20 AC 1 ms
5,376 KB
testcase_21 AC 1 ms
5,376 KB
testcase_22 AC 2 ms
5,376 KB
testcase_23 AC 1 ms
5,376 KB
testcase_24 AC 1 ms
5,376 KB
testcase_25 AC 1 ms
5,376 KB
testcase_26 AC 1 ms
5,376 KB
testcase_27 AC 1 ms
5,376 KB
testcase_28 AC 79 ms
54,144 KB
testcase_29 AC 79 ms
54,256 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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

typedef unsigned int uint;

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

void run(void){
  const uint mod=1000000007;
  uint n,k;
  scanf("%d%d",&n,&k);
  uint *dp=(uint *)calloc((n+1)*(k+1),sizeof(uint));
  dp[POS(1,0)]=1;
  uint i,j;
  for(i=2;i<=n;i++){
    uint local=0;
    for(j=0;j<=k && j<=i-1;j++){
      local=(local+dp[POS(i-1,j)])%mod;
      dp[POS(i,j)]=local;
    }
    for(;j<=k;j++){
      local=(local+dp[POS(i-1,j)]-dp[POS(i-1,j-i)]+mod)%mod;
      dp[POS(i,j)]=local;
    }
  }
  int sum=0;
  for(i=0;i<=k;i++) sum=(sum+dp[POS(n,i)])%mod;
  printf("%d\n",sum);
}

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