#include<bits/stdc++.h>
using namespace std;
const int MOD = 1e9+7;
int fx(int x){
if(x > MOD) x -= MOD;
return x;
}
void solve(){
int n, m;cin >> n >> m;
vector<int> rnsp[n], rpsn[n];
int ansp[n] = {0}, apsn[n] = {0};
int psn[n], nsp[n];
while(m--){
int a, b; cin >> a >> b;a--;b--;
if(a < b) {
ansp[a+1]++;
if(b+1 < n) rnsp[b+1].push_back(a);
} else {
swap(a,b);
apsn[a+1]++;
if(b+1 < n) rpsn[b+1].push_back(a);
}
}
multiset<int> spsn, snsp;
for(int i = 1;i < n;i++) {
while(ansp[i]--) snsp.insert(i-1);
while(apsn[i]--) spsn.insert(i-1);
for(int k : rnsp[i]) snsp.erase(snsp.find(k));
for(int k : rpsn[i]) spsn.erase(spsn.find(k));
psn[i] = spsn.empty() ? i : *spsn.rbegin();
nsp[i] = snsp.empty() ? i : *snsp.rbegin();
}
int dp[n+1][n+1][26];
for(int j = 0;j <= n;j++) for(int i = 0;i < 26;i++) dp[n][j][i] = 1;
for(int i = n-1;i;i--){
for(int j = 0;j < i;j++){
for(int k = 0;k < 26;k++){
dp[i][j][k]=0;
for(int l = psn[i] >= j && psn[i] <= i-1 ? k : 0;l < (nsp[i] >= j && nsp[i] <= i-1 ? k+1 : 26);l++){
dp[i][j][k] = fx(dp[i][j][k] + dp[i+1][l == k ? j : i][l]);
}
}
}
}
int ans = 0;
for(int i = 0;i < 26;i++) ans = fx(ans+dp[1][0][i]);
cout <<ans << '\n';
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
solve();
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
408 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
408 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
344 KB |
Output is correct |
15 |
Correct |
15 ms |
4440 KB |
Output is correct |
16 |
Correct |
8 ms |
4440 KB |
Output is correct |
17 |
Correct |
6 ms |
4444 KB |
Output is correct |
18 |
Correct |
5 ms |
4444 KB |
Output is correct |
19 |
Correct |
5 ms |
4576 KB |
Output is correct |
20 |
Correct |
4 ms |
4444 KB |
Output is correct |
21 |
Correct |
5 ms |
4444 KB |
Output is correct |
22 |
Correct |
7 ms |
4700 KB |
Output is correct |
23 |
Correct |
25 ms |
4576 KB |
Output is correct |
24 |
Correct |
6 ms |
4696 KB |
Output is correct |
25 |
Correct |
4 ms |
4444 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Runtime error |
906 ms |
1048576 KB |
Execution killed with signal 9 |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
408 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
344 KB |
Output is correct |
15 |
Correct |
15 ms |
4440 KB |
Output is correct |
16 |
Correct |
8 ms |
4440 KB |
Output is correct |
17 |
Correct |
6 ms |
4444 KB |
Output is correct |
18 |
Correct |
5 ms |
4444 KB |
Output is correct |
19 |
Correct |
5 ms |
4576 KB |
Output is correct |
20 |
Correct |
4 ms |
4444 KB |
Output is correct |
21 |
Correct |
5 ms |
4444 KB |
Output is correct |
22 |
Correct |
7 ms |
4700 KB |
Output is correct |
23 |
Correct |
25 ms |
4576 KB |
Output is correct |
24 |
Correct |
6 ms |
4696 KB |
Output is correct |
25 |
Correct |
4 ms |
4444 KB |
Output is correct |
26 |
Runtime error |
658 ms |
1048576 KB |
Execution killed with signal 9 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
408 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
0 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
344 KB |
Output is correct |
15 |
Correct |
15 ms |
4440 KB |
Output is correct |
16 |
Correct |
8 ms |
4440 KB |
Output is correct |
17 |
Correct |
6 ms |
4444 KB |
Output is correct |
18 |
Correct |
5 ms |
4444 KB |
Output is correct |
19 |
Correct |
5 ms |
4576 KB |
Output is correct |
20 |
Correct |
4 ms |
4444 KB |
Output is correct |
21 |
Correct |
5 ms |
4444 KB |
Output is correct |
22 |
Correct |
7 ms |
4700 KB |
Output is correct |
23 |
Correct |
25 ms |
4576 KB |
Output is correct |
24 |
Correct |
6 ms |
4696 KB |
Output is correct |
25 |
Correct |
4 ms |
4444 KB |
Output is correct |
26 |
Correct |
0 ms |
348 KB |
Output is correct |
27 |
Correct |
1 ms |
344 KB |
Output is correct |
28 |
Correct |
0 ms |
348 KB |
Output is correct |
29 |
Correct |
0 ms |
348 KB |
Output is correct |
30 |
Runtime error |
906 ms |
1048576 KB |
Execution killed with signal 9 |
31 |
Halted |
0 ms |
0 KB |
- |