Submission details
Task:Grid Paths II
Sender:lnan95
Submission time:2020-09-19 14:33:29 +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
#6--details
#7--details
#8--details
#9--details
#10--details

Code

#include <bits/stdc++.h>
#define ll long long int 
using namespace std;

set<pair<int, int>> traps; 
vector<int> dp {};
ll M = 1e9+7;
int main () {
    int n, m;
    cin >> n >> m;

    dp = vector<int> (n+1);
    for (int i=0; i<m; i++) {
        int a, b;
        cin >> b >> a;
        if ((a==n && b==n) || (a==1 && b==1))  {
            cout << 0;
            return 0;
        }
        traps.insert(make_pair(a, b));
    }
    
    dp[1] = 1;
    for (int i=1; i<=n; i++) {
        for (int j=1; j<=n; j++) {
            if (traps.find({i,j}) == traps.end()) {
                dp[j] = (dp[j-1]%M+ dp[j]%M) %M;
            } else dp[j] = 0;
        }
    }


    cout << dp[n];
    // cout << "\n";
    // for (auto i:dp) {
    //     cout << i << " ";
    // }
    // 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)