Submission #520892
Source Code Expand
#include <algorithm> #include <cassert> #include <iostream> #include <map> #include <set> #include <string> #include <vector> #define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++) using namespace std; typedef long long int ll; const int DEBUG = 0; struct mov { int m, s, e; }; istream &operator>>(istream &os, mov &m) { os >> m.m >> m.s >> m.e; return os; } bool mov_cmp(const mov &m1, const mov &m2) { return m1.s < m2.s || (m1.s == m2.s && (m1.e < m2.e || (m1.e == m2.e && m1.m < m2.m))); } int solve(const vector<int> &h, const vector<mov> &ms) { int n = h.size(); vector<map<int, int> > dp(n); vector<int> dpm(n, -1); REP(i, 0, n) { dp[i] = map<int, int>(); } REP(i, 0, n) { vector<bool> vis(n + 1, false); dp[i][1] = h[0]; for (int k = i - 1; k >= 0; --k) { if (vis[ms[k].m]) { continue; } if (ms[k].e > ms[i].s) { continue; } vis[ms[k].m] = true; if (ms[k].m != ms[i].m) { if (dpm[k] >= 0) { dp[i][1] = max(dp[i][1], dpm[k] + h[0]); } } else { for (map<int, int>::iterator it = dp[k].begin(); it != dp[k].end(); ++it) { dp[i][it->first + 1] = max(dp[i][it->first + 1], it->second + h[it->first]); } } } for (map<int, int>::iterator it = dp[i].begin(); it != dp[i].end(); ++it) { dpm[i] = max(dpm[i], it->second); } assert (dpm[i] >= 0); } int ma = 0; REP(i, 0, n) { ma = max(ma, dpm[i]); } return ma; } int main(void) { int n; cin >> n; vector<int> h(n); vector<mov> ms(n); REP(i, 0, n) { cin >> h[i]; } REP(i, 0, n) { cin >> ms[i]; } sort(ms.begin(), ms.end(), mov_cmp); cout << solve(h, ms) << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - 映画の連続視聴 |
User | kobae964 |
Language | C++ (G++ 4.6.4) |
Score | 100 |
Code Size | 1711 Byte |
Status | AC |
Exec Time | 230 ms |
Memory | 27696 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt, subtask1_43.txt, subtask1_44.txt, subtask1_45.txt, subtask1_46.txt, subtask1_47.txt, subtask1_48.txt, subtask1_49.txt, subtask1_50.txt, subtask1_51.txt, subtask1_52.txt, subtask1_53.txt, subtask1_54.txt, subtask1_55.txt, subtask1_56.txt, subtask1_57.txt, subtask1_58.txt, subtask1_59.txt, sample_01.txt, sample_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 30 ms | 1144 KB |
sample_02.txt | AC | 31 ms | 1148 KB |
subtask1_01.txt | AC | 63 ms | 4500 KB |
subtask1_02.txt | AC | 33 ms | 1128 KB |
subtask1_03.txt | AC | 54 ms | 3632 KB |
subtask1_04.txt | AC | 84 ms | 6420 KB |
subtask1_05.txt | AC | 44 ms | 2352 KB |
subtask1_06.txt | AC | 77 ms | 5908 KB |
subtask1_07.txt | AC | 35 ms | 1392 KB |
subtask1_08.txt | AC | 50 ms | 3216 KB |
subtask1_09.txt | AC | 35 ms | 1428 KB |
subtask1_10.txt | AC | 75 ms | 5740 KB |
subtask1_11.txt | AC | 34 ms | 1432 KB |
subtask1_12.txt | AC | 51 ms | 3384 KB |
subtask1_13.txt | AC | 64 ms | 4560 KB |
subtask1_14.txt | AC | 83 ms | 6596 KB |
subtask1_15.txt | AC | 98 ms | 7704 KB |
subtask1_16.txt | AC | 101 ms | 7728 KB |
subtask1_17.txt | AC | 102 ms | 7696 KB |
subtask1_18.txt | AC | 98 ms | 7708 KB |
subtask1_19.txt | AC | 98 ms | 7700 KB |
subtask1_20.txt | AC | 219 ms | 27032 KB |
subtask1_21.txt | AC | 218 ms | 26948 KB |
subtask1_22.txt | AC | 222 ms | 27316 KB |
subtask1_23.txt | AC | 224 ms | 27444 KB |
subtask1_24.txt | AC | 219 ms | 26860 KB |
subtask1_25.txt | AC | 218 ms | 27032 KB |
subtask1_26.txt | AC | 225 ms | 27584 KB |
subtask1_27.txt | AC | 226 ms | 27244 KB |
subtask1_28.txt | AC | 226 ms | 27696 KB |
subtask1_29.txt | AC | 224 ms | 26676 KB |
subtask1_30.txt | AC | 220 ms | 27060 KB |
subtask1_31.txt | AC | 230 ms | 27312 KB |
subtask1_32.txt | AC | 224 ms | 27244 KB |
subtask1_33.txt | AC | 221 ms | 27416 KB |
subtask1_34.txt | AC | 222 ms | 27464 KB |
subtask1_35.txt | AC | 218 ms | 26992 KB |
subtask1_36.txt | AC | 220 ms | 27156 KB |
subtask1_37.txt | AC | 220 ms | 27192 KB |
subtask1_38.txt | AC | 219 ms | 27064 KB |
subtask1_39.txt | AC | 229 ms | 27248 KB |
subtask1_40.txt | AC | 97 ms | 7688 KB |
subtask1_41.txt | AC | 95 ms | 7736 KB |
subtask1_42.txt | AC | 96 ms | 7756 KB |
subtask1_43.txt | AC | 100 ms | 7728 KB |
subtask1_44.txt | AC | 97 ms | 7700 KB |
subtask1_45.txt | AC | 96 ms | 7736 KB |
subtask1_46.txt | AC | 97 ms | 7728 KB |
subtask1_47.txt | AC | 97 ms | 7700 KB |
subtask1_48.txt | AC | 96 ms | 7556 KB |
subtask1_49.txt | AC | 96 ms | 7700 KB |
subtask1_50.txt | AC | 97 ms | 7700 KB |
subtask1_51.txt | AC | 109 ms | 7704 KB |
subtask1_52.txt | AC | 98 ms | 7852 KB |
subtask1_53.txt | AC | 98 ms | 7756 KB |
subtask1_54.txt | AC | 96 ms | 7732 KB |
subtask1_55.txt | AC | 97 ms | 7700 KB |
subtask1_56.txt | AC | 96 ms | 7736 KB |
subtask1_57.txt | AC | 95 ms | 7704 KB |
subtask1_58.txt | AC | 94 ms | 7736 KB |
subtask1_59.txt | AC | 96 ms | 7736 KB |