Submission #1774016
Source Code Expand
#include <iostream> #include <iomanip> // << fixed << setprecision(xxx) #include <algorithm> // do { } while ( next_permutation(A, A+xxx) ) ; #include <vector> #include <string> // to_string(nnn) // substr(m, n) // stoi(nnn) #include <complex> #include <tuple> // get<n>(xxx) #include <queue> #include <stack> #include <map> // if (M.find(key) != M.end()) { } #include <set> // S.insert(M); // if (S.find(key) != S.end()) { } // for (auto it=S.begin(); it != S.end(); it++) { } // auto it = S.lower_bound(M); #include <random> // random_device rd; mt19937 mt(rd()); #include <cctype> #include <cassert> #include <cmath> #include <cstdio> #include <cstdlib> // atoi(xxx) using namespace std; #define DEBUG 0 // change 0 -> 1 if we need debug. // insert #if<tab> by my emacs. #if DEBUG == 1 ... #end typedef long long ll; // const int dx[4] = {1, 0, -1, 0}; // const int dy[4] = {0, 1, 0, -1}; // const int C = 1e6+10; const ll MOD = 1000000007; typedef tuple<int, int> state; int N, M; vector<state> V[310]; ll DP[310][310][310]; int main () { cin >> N >> M; for (auto i = 0; i < M; ++i) { int l, r, x; cin >> l >> r >> x; V[r].push_back(state(l, x)); } fill(&DP[0][0][0], &DP[0][0][0]+310*310*310, 0); DP[1][1][0] = 3; for (auto i = 1; i <= N; ++i) { for (auto e : V[i]) { int l = get<0>(e); int clr = get<1>(e); if (clr == 1) { for (auto j = l+1; j <= i; ++j) { for (auto k = 0; k < j; ++k) { DP[i][j][k] = 0; } } } else if (clr == 2) { for (auto j = 1; j <= i; ++j) { for (auto k = 0; k < j; ++k) { if (!(j > l && l >= k)) { DP[i][j][k] = 0; } } } } else { for (auto j = 1; j <= i; ++j) { for (auto k = 0; k <= l; ++k) { DP[i][j][k] = 0; } } } } /* for (auto j = 1; j <= i; ++j) { for (auto k = 0; k < j; ++k) { cerr << "DP[" << i << "][" << j << "][" << k << "] = " << DP[i][j][k] << endl; } } */ if (i == N) break; for (auto j = 1; j <= i; ++j) { for (auto k = 0; k < j; ++k) { DP[i+1][j][k] += DP[i][j][k]; DP[i+1][j][k] %= MOD; DP[i+1][i+1][k] += DP[i][j][k]; DP[i+1][i+1][k] %= MOD; DP[i+1][i+1][j] += DP[i][j][k]; DP[i+1][i+1][j] %= MOD; } } } ll sum = 0; for (auto j = 1; j <= N; ++j) { for (auto k = 0; k < j; ++k) { sum += DP[N][j][k]; sum %= MOD; } } cout << sum << endl; }
Submission Info
Submission Time | |
---|---|
Task | E - RGB Sequence |
User | kazunetakahashi |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 2717 Byte |
Status | AC |
Exec Time | 159 ms |
Memory | 233088 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 800 / 800 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 101 ms | 232960 KB |
0_01.txt | AC | 90 ms | 232960 KB |
0_02.txt | AC | 90 ms | 232960 KB |
0_03.txt | AC | 89 ms | 232960 KB |
1_00.txt | AC | 124 ms | 232960 KB |
1_01.txt | AC | 127 ms | 232960 KB |
1_02.txt | AC | 126 ms | 232960 KB |
1_03.txt | AC | 126 ms | 233088 KB |
1_04.txt | AC | 127 ms | 232960 KB |
1_05.txt | AC | 159 ms | 232960 KB |
1_06.txt | AC | 121 ms | 232960 KB |
1_07.txt | AC | 121 ms | 232960 KB |
1_08.txt | AC | 120 ms | 232960 KB |
1_09.txt | AC | 122 ms | 232960 KB |
1_10.txt | AC | 119 ms | 232960 KB |
1_11.txt | AC | 121 ms | 232960 KB |
1_12.txt | AC | 121 ms | 232960 KB |
1_13.txt | AC | 123 ms | 233088 KB |
1_14.txt | AC | 119 ms | 232960 KB |
1_15.txt | AC | 122 ms | 232960 KB |
1_16.txt | AC | 120 ms | 232960 KB |
1_17.txt | AC | 122 ms | 232960 KB |
1_18.txt | AC | 118 ms | 232960 KB |
1_19.txt | AC | 118 ms | 232960 KB |
1_20.txt | AC | 121 ms | 232960 KB |
1_21.txt | AC | 121 ms | 232960 KB |
1_22.txt | AC | 117 ms | 232960 KB |
1_23.txt | AC | 119 ms | 232960 KB |
1_24.txt | AC | 126 ms | 232960 KB |
1_25.txt | AC | 120 ms | 232960 KB |
1_26.txt | AC | 116 ms | 232960 KB |
1_27.txt | AC | 118 ms | 232960 KB |
1_28.txt | AC | 119 ms | 232960 KB |
1_29.txt | AC | 119 ms | 232960 KB |
1_30.txt | AC | 116 ms | 232960 KB |
1_31.txt | AC | 119 ms | 232960 KB |
1_32.txt | AC | 122 ms | 232960 KB |
1_33.txt | AC | 118 ms | 232960 KB |
1_34.txt | AC | 115 ms | 232960 KB |
1_35.txt | AC | 116 ms | 232960 KB |
1_36.txt | AC | 116 ms | 232960 KB |
1_37.txt | AC | 116 ms | 232960 KB |
1_38.txt | AC | 117 ms | 232960 KB |
1_39.txt | AC | 117 ms | 232960 KB |
1_40.txt | AC | 117 ms | 232960 KB |
1_41.txt | AC | 122 ms | 232960 KB |
1_42.txt | AC | 124 ms | 232960 KB |