Submission #1692012


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
 
typedef long long LL;
typedef pair<int, int> pii;
 
#define fst first
#define snd second
#define pb push_back
#define REP(i, a, b)  for(int i = (a), i##end = (b); i < i##end; ++i)
#define DREP(i, a, b) for(int i=(a-1), i##end = (b); i >=i##end; --i)
 
template <typename T> bool chkmax(T& a, T b) { return a < b ? a = b, 1 : 0; }
template <typename T> bool chkmin(T& a, T b) { return a > b ? a = b, 1 : 0; }
 
const int N = 3000;
const int mo = 1e9 + 7;
const int oo = 0x3f3f3f3f;
 
template<typename T> T read() {
    T n(0), f(1);
    char ch = getchar();
    for(;!isdigit(ch); ch = getchar()) if(ch == '-') f = -1;
    for(; isdigit(ch); ch = getchar()) n = n * 10 + ch - 48; 
    return n * f;
}

int n, m;
int f[N + 5][N + 5][2];

inline void add(int &a, int b) {
    if((a += b) >= mo) a -= mo;
}

int main() {
#ifdef Wearry
    freopen("data.txt", "r", stdin);
    freopen("ans.txt", "w", stdout);
#endif 

    scanf("%d%d", &n, &m);

    for(int i = 0; i <= n; ++i) f[0][i][!i] = 1;
    for(int i = 1; i <= m; ++i) {
        for(int j = 0; j <= n; ++j) {
            if(j > 0) {
                add(f[i][j][(j == 1)], f[i-1][j][0]);
                add(f[i][j][1], f[i-1][j][1]);

                add(f[i][j-1][(j == 1)], f[i-1][j][0]);
                add(f[i][j-1][1], f[i-1][j][1]);
            }

            if(j < n) {
                add(f[i][j][0], f[i-1][j][0]);
                add(f[i][j][1], f[i-1][j][1]);

                add(f[i][j+1][0], f[i-1][j][0]);
                add(f[i][j+1][1], f[i-1][j][1]);
            }
        }
    }

    int ans = 0;
    for(int j = 0; j <= n; ++j) {
        add(ans, f[m][j][1]);
    }
    printf("%d\n", ans);

    return 0;
}

Submission Info

Submission Time
Task D - Piling Up
User Wearry
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1806 Byte
Status AC
Exec Time 178 ms
Memory 70656 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:41:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
                          ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 33
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 2 ms 384 KB
sample_03.txt AC 86 ms 69248 KB
subtask_1_01.txt AC 22 ms 14592 KB
subtask_1_02.txt AC 20 ms 27520 KB
subtask_1_03.txt AC 72 ms 69120 KB
subtask_1_04.txt AC 56 ms 38400 KB
subtask_1_05.txt AC 131 ms 61696 KB
subtask_1_06.txt AC 72 ms 69120 KB
subtask_1_07.txt AC 78 ms 64768 KB
subtask_1_08.txt AC 33 ms 45952 KB
subtask_1_09.txt AC 135 ms 70144 KB
subtask_1_10.txt AC 178 ms 70656 KB
subtask_1_11.txt AC 70 ms 64640 KB
subtask_1_12.txt AC 45 ms 40064 KB
subtask_1_13.txt AC 67 ms 68992 KB
subtask_1_14.txt AC 39 ms 60160 KB
subtask_1_15.txt AC 22 ms 21632 KB
subtask_1_16.txt AC 83 ms 69248 KB
subtask_1_17.txt AC 29 ms 33792 KB
subtask_1_18.txt AC 33 ms 29952 KB
subtask_1_19.txt AC 46 ms 68608 KB
subtask_1_20.txt AC 86 ms 69248 KB
subtask_1_21.txt AC 9 ms 27264 KB
subtask_1_22.txt AC 22 ms 68352 KB
subtask_1_23.txt AC 12 ms 35456 KB
subtask_1_24.txt AC 22 ms 68352 KB
subtask_1_25.txt AC 2 ms 384 KB
subtask_1_26.txt AC 22 ms 68352 KB
subtask_1_27.txt AC 1 ms 256 KB