Submission #2240887
Source Code Expand
#include <bits/stdc++.h> using namespace std; using int64 = long long; const int mod = 1e9 + 7; int main() { int N, M; int S[200], T[200]; vector< int > vs; cin >> N >> M; for(int i = 0; i < M; i++) { cin >> S[i] >> T[i]; vs.emplace_back(S[i]); vs.emplace_back(T[i]); } vs.emplace_back(1); vs.emplace_back(N); sort(begin(vs), end(vs)); vs.erase(unique(begin(vs), end(vs)), end(vs)); for(int i = 0; i < M; i++) { S[i] = lower_bound(begin(vs), end(vs), S[i]) - begin(vs); T[i] = lower_bound(begin(vs), end(vs), T[i]) - begin(vs); } vector< int > ev[403]; for(int i = 0; i < M; i++) { ev[S[i]].emplace_back(T[i]); } bool isex[403] = {}; for(int i = 0; i < vs.size() - 1; i++) { isex[i] = (vs[i] + 1 == vs[i + 1]); } isex[vs.size() - 1] = true; vector< vector< int > > dp(vs.size() + 1, vector< int >(vs.size() + 1)); dp[0][0] = 1; // i, j)までカバー済み for(int i = 0; i < vs.size(); i++) { for(auto &v : ev[i]) { int nxt = v + isex[v]; auto dp2 = dp; for(int j = i; j <= vs.size(); j++) { for(int k = i; k <= vs.size(); k++) { if(nxt <= j && nxt <= k) { (dp2[j][k] += dp[j][k]) %= mod; } else if(j < nxt && k < nxt) { if(j > k) (dp2[j][nxt] += dp[j][k]) %= mod; else (dp2[nxt][k] += dp[j][k]) %= mod; } else if(nxt <= j) { (dp2[j][max(nxt, k)] += dp[j][k]) %= mod; } else { (dp2[max(nxt, j)][k] += dp[j][k]) %= mod; } } } dp.swap(dp2); } } cout << dp.back().back() << endl; }
Submission Info
Submission Time | |
---|---|
Task | H - ダイヤグラム |
User | ei13333 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1691 Byte |
Status | AC |
Exec Time | 83 ms |
Memory | 1580 KB |
Judge Result
Set Name | small | medium | large | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 10 / 10 | 40 / 40 | 50 / 50 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
small | small/case_000.txt, small/case_001.txt, small/case_002.txt, small/case_003.txt, small/case_004.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_016.txt, small/case_017.txt, small/case_018.txt, small/case_019.txt, small/case_020.txt, small/case_021.txt, small/case_022.txt, small/case_023.txt |
medium | medium/case_000.txt, medium/case_001.txt, medium/case_002.txt, medium/case_003.txt, medium/case_004.txt, medium/case_005.txt, medium/case_006.txt, medium/case_007.txt, medium/case_008.txt, medium/case_009.txt, medium/case_010.txt, medium/case_011.txt, medium/case_012.txt, medium/case_013.txt, medium/case_014.txt, medium/case_015.txt, medium/case_016.txt, medium/case_017.txt, medium/case_018.txt, medium/case_019.txt, medium/case_020.txt, medium/case_021.txt, medium/case_022.txt, medium/case_023.txt, medium/medium_case_000.txt, medium/medium_case_001.txt, medium/medium_case_002.txt, medium/medium_case_003.txt, medium/medium_case_004.txt, medium/medium_case_005.txt, medium/medium_case_006.txt, medium/medium_case_007.txt, medium/medium_case_008.txt, medium/medium_case_009.txt, medium/medium_case_010.txt, medium/medium_case_011.txt, medium/medium_case_012.txt, medium/medium_case_013.txt, medium/medium_case_014.txt, medium/medium_case_015.txt, medium/medium_case_016.txt, medium/medium_case_017.txt, medium/medium_case_018.txt, medium/medium_case_019.txt, medium/medium_case_020.txt |
large | large/case_000.txt, large/case_001.txt, large/case_002.txt, large/case_003.txt, large/case_004.txt, large/case_005.txt, large/case_006.txt, large/case_007.txt, large/case_008.txt, large/case_009.txt, large/case_010.txt, large/case_011.txt, large/case_012.txt, large/case_013.txt, large/case_014.txt, large/case_015.txt, large/case_016.txt, large/case_017.txt, large/case_018.txt, large/case_019.txt, large/case_020.txt, large/case_021.txt, large/case_022.txt, large/case_023.txt, large/large_case_000.txt, large/large_case_001.txt, large/large_case_002.txt, large/large_case_003.txt, large/large_case_004.txt, large/large_case_005.txt, large/large_case_006.txt, large/large_case_007.txt, large/large_case_008.txt, large/large_case_009.txt, large/large_case_010.txt, large/large_case_011.txt, large/large_case_012.txt, large/large_case_013.txt, large/large_case_014.txt, large/large_case_015.txt, large/large_case_016.txt, large/large_case_017.txt, large/large_case_018.txt, large/large_case_019.txt, large/large_case_020.txt, large/large_case_021.txt, large/large_case_022.txt, large/large_case_023.txt, large/large_case_024.txt, large/large_case_025.txt, large/large_case_026.txt, large/large_case_027.txt, large/large_case_028.txt, large/large_case_029.txt, large/medium_case_000.txt, large/medium_case_001.txt, large/medium_case_002.txt, large/medium_case_003.txt, large/medium_case_004.txt, large/medium_case_005.txt, large/medium_case_006.txt, large/medium_case_007.txt, large/medium_case_008.txt, large/medium_case_009.txt, large/medium_case_010.txt, large/medium_case_011.txt, large/medium_case_012.txt, large/medium_case_013.txt, large/medium_case_014.txt, large/medium_case_015.txt, large/medium_case_016.txt, large/medium_case_017.txt, large/medium_case_018.txt, large/medium_case_019.txt, large/medium_case_020.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
large/case_000.txt | AC | 1 ms | 256 KB |
large/case_001.txt | AC | 1 ms | 256 KB |
large/case_002.txt | AC | 1 ms | 256 KB |
large/case_003.txt | AC | 1 ms | 256 KB |
large/case_004.txt | AC | 1 ms | 256 KB |
large/case_005.txt | AC | 1 ms | 256 KB |
large/case_006.txt | AC | 1 ms | 256 KB |
large/case_007.txt | AC | 1 ms | 256 KB |
large/case_008.txt | AC | 1 ms | 256 KB |
large/case_009.txt | AC | 1 ms | 256 KB |
large/case_010.txt | AC | 1 ms | 256 KB |
large/case_011.txt | AC | 1 ms | 256 KB |
large/case_012.txt | AC | 1 ms | 256 KB |
large/case_013.txt | AC | 1 ms | 256 KB |
large/case_014.txt | AC | 1 ms | 256 KB |
large/case_015.txt | AC | 1 ms | 256 KB |
large/case_016.txt | AC | 1 ms | 256 KB |
large/case_017.txt | AC | 1 ms | 256 KB |
large/case_018.txt | AC | 1 ms | 256 KB |
large/case_019.txt | AC | 1 ms | 256 KB |
large/case_020.txt | AC | 1 ms | 256 KB |
large/case_021.txt | AC | 1 ms | 256 KB |
large/case_022.txt | AC | 1 ms | 256 KB |
large/case_023.txt | AC | 1 ms | 256 KB |
large/large_case_000.txt | AC | 81 ms | 1580 KB |
large/large_case_001.txt | AC | 78 ms | 1556 KB |
large/large_case_002.txt | AC | 74 ms | 1504 KB |
large/large_case_003.txt | AC | 75 ms | 1524 KB |
large/large_case_004.txt | AC | 80 ms | 1552 KB |
large/large_case_005.txt | AC | 82 ms | 1552 KB |
large/large_case_006.txt | AC | 83 ms | 1580 KB |
large/large_case_007.txt | AC | 78 ms | 1488 KB |
large/large_case_008.txt | AC | 75 ms | 1488 KB |
large/large_case_009.txt | AC | 78 ms | 1552 KB |
large/large_case_010.txt | AC | 16 ms | 512 KB |
large/large_case_011.txt | AC | 18 ms | 580 KB |
large/large_case_012.txt | AC | 18 ms | 584 KB |
large/large_case_013.txt | AC | 15 ms | 512 KB |
large/large_case_014.txt | AC | 15 ms | 512 KB |
large/large_case_015.txt | AC | 15 ms | 512 KB |
large/large_case_016.txt | AC | 15 ms | 512 KB |
large/large_case_017.txt | AC | 15 ms | 512 KB |
large/large_case_018.txt | AC | 15 ms | 512 KB |
large/large_case_019.txt | AC | 15 ms | 512 KB |
large/large_case_020.txt | AC | 78 ms | 1556 KB |
large/large_case_021.txt | AC | 81 ms | 1552 KB |
large/large_case_022.txt | AC | 78 ms | 1544 KB |
large/large_case_023.txt | AC | 80 ms | 1528 KB |
large/large_case_024.txt | AC | 80 ms | 1556 KB |
large/large_case_025.txt | AC | 79 ms | 1576 KB |
large/large_case_026.txt | AC | 78 ms | 1552 KB |
large/large_case_027.txt | AC | 79 ms | 1544 KB |
large/large_case_028.txt | AC | 81 ms | 1524 KB |
large/large_case_029.txt | AC | 78 ms | 1544 KB |
large/medium_case_000.txt | AC | 1 ms | 256 KB |
large/medium_case_001.txt | AC | 1 ms | 256 KB |
large/medium_case_002.txt | AC | 1 ms | 256 KB |
large/medium_case_003.txt | AC | 1 ms | 256 KB |
large/medium_case_004.txt | AC | 1 ms | 256 KB |
large/medium_case_005.txt | AC | 1 ms | 256 KB |
large/medium_case_006.txt | AC | 1 ms | 256 KB |
large/medium_case_007.txt | AC | 1 ms | 256 KB |
large/medium_case_008.txt | AC | 1 ms | 256 KB |
large/medium_case_009.txt | AC | 1 ms | 256 KB |
large/medium_case_010.txt | AC | 1 ms | 256 KB |
large/medium_case_011.txt | AC | 1 ms | 256 KB |
large/medium_case_012.txt | AC | 1 ms | 256 KB |
large/medium_case_013.txt | AC | 1 ms | 256 KB |
large/medium_case_014.txt | AC | 1 ms | 256 KB |
large/medium_case_015.txt | AC | 1 ms | 256 KB |
large/medium_case_016.txt | AC | 1 ms | 256 KB |
large/medium_case_017.txt | AC | 1 ms | 256 KB |
large/medium_case_018.txt | AC | 1 ms | 256 KB |
large/medium_case_019.txt | AC | 1 ms | 256 KB |
large/medium_case_020.txt | AC | 1 ms | 256 KB |
medium/case_000.txt | AC | 1 ms | 256 KB |
medium/case_001.txt | AC | 1 ms | 256 KB |
medium/case_002.txt | AC | 1 ms | 256 KB |
medium/case_003.txt | AC | 1 ms | 256 KB |
medium/case_004.txt | AC | 1 ms | 256 KB |
medium/case_005.txt | AC | 1 ms | 256 KB |
medium/case_006.txt | AC | 1 ms | 256 KB |
medium/case_007.txt | AC | 1 ms | 256 KB |
medium/case_008.txt | AC | 1 ms | 256 KB |
medium/case_009.txt | AC | 1 ms | 256 KB |
medium/case_010.txt | AC | 1 ms | 256 KB |
medium/case_011.txt | AC | 1 ms | 256 KB |
medium/case_012.txt | AC | 1 ms | 256 KB |
medium/case_013.txt | AC | 1 ms | 256 KB |
medium/case_014.txt | AC | 1 ms | 256 KB |
medium/case_015.txt | AC | 1 ms | 256 KB |
medium/case_016.txt | AC | 1 ms | 256 KB |
medium/case_017.txt | AC | 1 ms | 256 KB |
medium/case_018.txt | AC | 1 ms | 256 KB |
medium/case_019.txt | AC | 1 ms | 256 KB |
medium/case_020.txt | AC | 1 ms | 256 KB |
medium/case_021.txt | AC | 1 ms | 256 KB |
medium/case_022.txt | AC | 1 ms | 256 KB |
medium/case_023.txt | AC | 1 ms | 256 KB |
medium/medium_case_000.txt | AC | 1 ms | 256 KB |
medium/medium_case_001.txt | AC | 1 ms | 256 KB |
medium/medium_case_002.txt | AC | 1 ms | 256 KB |
medium/medium_case_003.txt | AC | 1 ms | 256 KB |
medium/medium_case_004.txt | AC | 1 ms | 256 KB |
medium/medium_case_005.txt | AC | 1 ms | 256 KB |
medium/medium_case_006.txt | AC | 1 ms | 256 KB |
medium/medium_case_007.txt | AC | 1 ms | 256 KB |
medium/medium_case_008.txt | AC | 1 ms | 256 KB |
medium/medium_case_009.txt | AC | 1 ms | 256 KB |
medium/medium_case_010.txt | AC | 1 ms | 256 KB |
medium/medium_case_011.txt | AC | 1 ms | 256 KB |
medium/medium_case_012.txt | AC | 1 ms | 256 KB |
medium/medium_case_013.txt | AC | 1 ms | 256 KB |
medium/medium_case_014.txt | AC | 1 ms | 256 KB |
medium/medium_case_015.txt | AC | 1 ms | 256 KB |
medium/medium_case_016.txt | AC | 1 ms | 256 KB |
medium/medium_case_017.txt | AC | 1 ms | 256 KB |
medium/medium_case_018.txt | AC | 1 ms | 256 KB |
medium/medium_case_019.txt | AC | 1 ms | 256 KB |
medium/medium_case_020.txt | AC | 1 ms | 256 KB |
small/case_000.txt | AC | 1 ms | 256 KB |
small/case_001.txt | AC | 1 ms | 256 KB |
small/case_002.txt | AC | 1 ms | 256 KB |
small/case_003.txt | AC | 1 ms | 256 KB |
small/case_004.txt | AC | 1 ms | 256 KB |
small/case_005.txt | AC | 1 ms | 256 KB |
small/case_006.txt | AC | 1 ms | 256 KB |
small/case_007.txt | AC | 1 ms | 256 KB |
small/case_008.txt | AC | 1 ms | 256 KB |
small/case_009.txt | AC | 1 ms | 256 KB |
small/case_010.txt | AC | 1 ms | 256 KB |
small/case_011.txt | AC | 1 ms | 256 KB |
small/case_012.txt | AC | 1 ms | 256 KB |
small/case_013.txt | AC | 1 ms | 256 KB |
small/case_014.txt | AC | 1 ms | 256 KB |
small/case_015.txt | AC | 1 ms | 256 KB |
small/case_016.txt | AC | 1 ms | 256 KB |
small/case_017.txt | AC | 1 ms | 256 KB |
small/case_018.txt | AC | 1 ms | 256 KB |
small/case_019.txt | AC | 1 ms | 256 KB |
small/case_020.txt | AC | 1 ms | 256 KB |
small/case_021.txt | AC | 1 ms | 256 KB |
small/case_022.txt | AC | 1 ms | 256 KB |
small/case_023.txt | AC | 1 ms | 256 KB |