結果
問題 |
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; }