Submission details
Task:Grid Paths II
Sender:lnan95
Submission time:2020-09-19 13:53:17 +0300
Language:C++ (C++11)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.01 sdetails
#2ACCEPTED0.01 sdetails
#3ACCEPTED0.01 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.01 sdetails
#60.35 sdetails
#70.35 sdetails
#80.33 sdetails
#90.33 sdetails
#100.33 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

int dx[4] {1, 0, -1, 0};
int dy[4] {0, 1, 0, -1};
set<pair<int, int>> traps; 
vector<vector<int>> dp {};
int M = 1e9+7;
int main () {
    int n, m;
    cin >> n >> m;
    if (!n) {
        cout << 0;
        return 0;
    }
    
    dp = vector<vector<int>> (n+1, vector<int>(n+1));
    for (int i=0; i<m; i++) {
        int a, b;
        cin >> a >> b;
        traps.insert(make_pair(a, b));
    }

    dp[1][0] = 1;
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=n; j++) {
            if (traps.find({i,j}) != traps.end()) {
                dp[i][j] = 0;
            } else {
                dp[i][j] = (dp[i-1][j]%M + dp[i][j-1]%M)%M;
            }
        }
    }
    
    cout << dp[n][n];
    // cout << "\n";
    // for (auto i:dp) {
    //     for (auto j:i) {
    //         cout << j << " ";
    //     }
    //     cout << endl;
    // }
}

Test details

Test 1

Verdict: ACCEPTED

input
100 1000
41 11
11 24
51 72
47 31
...

correct output
342758070

user output
342758070

Test 2

Verdict: ACCEPTED

input
100 1000
83 37
24 1
52 42
86 36
...

correct output
919249325

user output
919249325

Test 3

Verdict: ACCEPTED

input
100 1000
99 28
16 31
92 41
39 65
...

correct output
12649242

user output
12649242

Test 4

Verdict: ACCEPTED

input
100 1000
5 47
32 1
27 70
86 39
...

correct output
466313473

user output
466313473

Test 5

Verdict: ACCEPTED

input
100 1000
14 28
63 16
15 54
68 18
...

correct output
525088588

user output
525088588

Test 6

Verdict:

input
1000000 1000
332974 646000
669874 23872
662362 92533
670177 367382
...

correct output
476425733

user output
(empty)

Test 7

Verdict:

input
1000000 1000
474616 793877
452016 207512
940198 719201
162471 997296
...

correct output
757933231

user output
(empty)

Test 8

Verdict:

input
1000000 1000
125814 37785
523915 416397
246681 345297
635386 245404
...

correct output
672607703

user output
(empty)

Test 9

Verdict:

input
1000000 1000
468197 471455
970002 408761
420246 765021
8126 930827
...

correct output
138494458

user output
(empty)

Test 10

Verdict:

input
1000000 1000
837278 905086
893778 245584
867013 721507
404988 868333
...

correct output
796948966

user output
(empty)