Submission #4314458
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int64_t MOD = 1e9+7;
void add(int64_t& a, int64_t b){
a = (a+b) % MOD;
}
int main(){
int N, K;
cin >> N >> K;
int64_t pow2[5002];
pow2[0] = 1;
for(int i=1; i<=5001; i++) pow2[i] = pow2[i-1] * 2 % MOD;
static int64_t dp[5002][5002];
dp[0][0] = 1;
for(int i=1; i<=N-K; i++){
int64_t sum = dp[i-1][i-1];
for(int j=i; j<=N; j++){
dp[i][j] = dp[i-1][j] * pow2[max(0, j-i-K+1)] % MOD;
if(j-i-K >= 0) add(dp[i][j], sum * pow2[j-i-K]);
add(sum, dp[i-1][j]);
}
}
cout << dp[N-K][N] << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Erasure |
| User | betrue12 |
| Language | C++14 (GCC 5.4.1) |
| Score | 700 |
| Code Size | 690 Byte |
| Status | AC |
| Exec Time | 124 ms |
| Memory | 194944 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 700 / 700 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt |
| All | 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, 01-11.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-01.txt | AC | 1 ms | 256 KiB |
| 01-02.txt | AC | 45 ms | 103936 KiB |
| 01-03.txt | AC | 15 ms | 46080 KiB |
| 01-04.txt | AC | 80 ms | 147456 KiB |
| 01-05.txt | AC | 38 ms | 61440 KiB |
| 01-06.txt | AC | 1 ms | 384 KiB |
| 01-07.txt | AC | 124 ms | 194944 KiB |
| 01-08.txt | AC | 124 ms | 194816 KiB |
| 01-09.txt | AC | 108 ms | 162048 KiB |
| 01-10.txt | AC | 102 ms | 151808 KiB |
| 01-11.txt | AC | 1 ms | 384 KiB |
| sample-01.txt | AC | 1 ms | 256 KiB |
| sample-02.txt | AC | 1 ms | 256 KiB |
| sample-03.txt | AC | 120 ms | 186624 KiB |