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 |
|
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 |