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
AC × 61
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