Submission #244879


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <ctime>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <cstring>
#include <vector>
#include <algorithm>
#include <functional>
#include <fstream>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <cstring>
#include <numeric>
#include <cassert>
using namespace std;
static const double EPS = 1e-10;
typedef long long ll;
#define rep(i,n) for(int i=0;i<(int)(n);(i)++)
#define rev(i,n) for(int i=(n)-1;(i)>=0;(i)--)
#define all(a) a.begin(),a.end()
#define mp(a,b) make_pair(a,b)
#define pb(a) push_back(a)
#define SS stringstream
#define DBG1(a) rep(_X,sz(a)){printf("%d ",a[_X]);}puts("");
#define DBG2(a) rep(_X,sz(a)){rep(_Y,sz(a[_X]))printf("%d ",a[_X][_Y]);puts("");}
#define bitcount(b) __builtin_popcountll(b)
#define gcd(a,b) (__gcd((a),(b)))
#define lcm(a,b) ( (a) / gcd((a),(b)) * (b) )
template<typename T, typename S> vector<T>& operator<<(vector<T>& a, S b) { a.push_back(b); return a; }
template<typename T> void operator>>(vector<T>& a, int b) {while(b--)if(!a.empty())a.pop_back();}
bool isprime(int n){ if(n<2)return false;  for(int i=2;i*i<=n;i++)if(n%i==0)return false;  return true;} 
 
const long long mod = 1000000007ll;
ll b_pow(ll x,ll n){return n ? b_pow(x*x%mod,n/2)*(n%2?x:1)%mod : 1ll;}
string itos(int n){stringstream ss;ss << n;return ss.str();}
 
long long in(){
	long long x; cin >> x;
	return x;
}
 
 
int A[3010];
 
int P[3010];
#define st first.first
#define en first.second
#define stat second
vector< pair<pair<int,int>,int > > v;

int next[3010];
int N;
int dp[3010];
int dfs(int x){
	
	if( x == N ) return 0;
	if( dp[x] != -1 ) return dp[x];
	// no choice
	int ans = dfs(x+1);
	// choice
	vector< pair<pair<int,int>,int> > item;
	for(int j = x ; j < v.size() ; j++){
		if( v[j].stat == v[x].stat  ){
			item.push_back(mp(mp(v[j].en,v[j].st),j));
		}
	}
	sort(item.begin(),item.end());
	int cur = -1;
	int sum = 0;
	int k = 0;
	for(int i = 0 ; i < item.size() ; i++){
		int e = item[i].first.first;
		int s = item[i].first.second;
		if( s >= cur ){
			cur = e;
			sum += A[k++];
			ans = max( dfs(next[item[i].second]) + sum , ans );
		}
	}
	return dp[x] = ans;
}
int dp2[3010][3010];
int next2[3010];

int main(){
	memset(dp,-1,sizeof(dp));
	cin >> N ;
	for(int i = 0 ; i < N ; i++) cin >> A[i];
	for(int i = 0 ; i < N ; i++){
		int id,s,e;
		cin >> id >> s >> e;
		v.push_back(make_pair(make_pair(s,e),id));
	}
	sort(v.begin(),v.end());
	for(int i = 0 ; i < N ; i++){
		next[i] = N;
		for(int j = i + 1 ; j < N ; j++){
			if( v[j].st >= v[i].en ){
				next[i] = j;
				break;
			}
		}
	}
	for(int i = 0 ; i < N ; i++){
		next2[i] = N;
		for(int j = i + 1 ; j < N ; j++){
			if( v[j].st >= v[i].en && v[j].stat == v[i].stat ){
				next2[i] = j;
				break;
			}
		}
	}
	cout << dfs(0) << endl;
}
 

Submission Info

Submission Time
Task D - 映画の連続視聴
User kyuridenamida
Language C++ (G++ 4.6.4)
Score 100
Code Size 3055 Byte
Status AC
Exec Time 102 ms
Memory 1448 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 26 ms 800 KB
sample_02.txt AC 24 ms 804 KB
subtask1_01.txt AC 36 ms 1060 KB
subtask1_02.txt AC 27 ms 804 KB
subtask1_03.txt AC 36 ms 1064 KB
subtask1_04.txt AC 48 ms 1196 KB
subtask1_05.txt AC 29 ms 920 KB
subtask1_06.txt AC 45 ms 1184 KB
subtask1_07.txt AC 26 ms 932 KB
subtask1_08.txt AC 34 ms 1048 KB
subtask1_09.txt AC 28 ms 880 KB
subtask1_10.txt AC 42 ms 1184 KB
subtask1_11.txt AC 27 ms 804 KB
subtask1_12.txt AC 34 ms 1064 KB
subtask1_13.txt AC 39 ms 1056 KB
subtask1_14.txt AC 47 ms 1184 KB
subtask1_15.txt AC 55 ms 1316 KB
subtask1_16.txt AC 55 ms 1312 KB
subtask1_17.txt AC 55 ms 1320 KB
subtask1_18.txt AC 54 ms 1316 KB
subtask1_19.txt AC 55 ms 1320 KB
subtask1_20.txt AC 99 ms 1436 KB
subtask1_21.txt AC 97 ms 1316 KB
subtask1_22.txt AC 97 ms 1252 KB
subtask1_23.txt AC 97 ms 1312 KB
subtask1_24.txt AC 98 ms 1316 KB
subtask1_25.txt AC 96 ms 1316 KB
subtask1_26.txt AC 98 ms 1320 KB
subtask1_27.txt AC 98 ms 1324 KB
subtask1_28.txt AC 95 ms 1320 KB
subtask1_29.txt AC 98 ms 1252 KB
subtask1_30.txt AC 98 ms 1324 KB
subtask1_31.txt AC 102 ms 1324 KB
subtask1_32.txt AC 97 ms 1316 KB
subtask1_33.txt AC 98 ms 1304 KB
subtask1_34.txt AC 98 ms 1304 KB
subtask1_35.txt AC 96 ms 1440 KB
subtask1_36.txt AC 98 ms 1316 KB
subtask1_37.txt AC 97 ms 1320 KB
subtask1_38.txt AC 98 ms 1316 KB
subtask1_39.txt AC 97 ms 1320 KB
subtask1_40.txt AC 54 ms 1448 KB
subtask1_41.txt AC 55 ms 1320 KB
subtask1_42.txt AC 54 ms 1316 KB
subtask1_43.txt AC 54 ms 1316 KB
subtask1_44.txt AC 54 ms 1312 KB
subtask1_45.txt AC 53 ms 1316 KB
subtask1_46.txt AC 54 ms 1320 KB
subtask1_47.txt AC 54 ms 1312 KB
subtask1_48.txt AC 52 ms 1444 KB
subtask1_49.txt AC 52 ms 1312 KB
subtask1_50.txt AC 52 ms 1316 KB
subtask1_51.txt AC 54 ms 1308 KB
subtask1_52.txt AC 52 ms 1320 KB
subtask1_53.txt AC 53 ms 1308 KB
subtask1_54.txt AC 54 ms 1312 KB
subtask1_55.txt AC 54 ms 1316 KB
subtask1_56.txt AC 54 ms 1316 KB
subtask1_57.txt AC 54 ms 1320 KB
subtask1_58.txt AC 54 ms 1308 KB
subtask1_59.txt AC 55 ms 1312 KB