結果
| 問題 |
No.616 へんなソート
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-02-09 17:31:47 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 861 bytes |
| コンパイル時間 | 751 ms |
| コンパイル使用メモリ | 71,132 KB |
| 実行使用メモリ | 221,092 KB |
| 最終ジャッジ日時 | 2024-10-07 17:25:39 |
| 合計ジャッジ時間 | 12,808 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 TLE * 3 -- * 1 |
ソースコード
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int N, K;
long dp[300][90000];
long array_patterns(int now_array_size, int now_inversion_number){
if(now_array_size == N){
return now_inversion_number <= K;
}else if(dp[now_array_size][now_inversion_number] != -1){
return dp[now_array_size][now_inversion_number];
}else{
long ans = 0;
for(int i = 0; i <= now_array_size; i++){
ans += array_patterns(now_array_size + 1, now_inversion_number + i);
ans %= long(1e9 + 7);
}
return dp[now_array_size][now_inversion_number] = ans;
}
}
int main(){
cin >> N >> K;
for(int i = 0; i < 300; i++){
for(int j = 0; j < 90000; j++){
dp[i][j] = -1;
}
}
cout << array_patterns(0, 0) << endl;
}