Submission #26978

#TimeUsernameProblemLanguageResultExecution timeMemory
26978BruteforcemanTeams (IOI15_teams)C++11
21 / 100
4000 ms11796 KiB
#include "teams.h" #include <bits/stdc++.h> using namespace std; typedef pair <int, int> pii; int n; pii range[500010]; int dp[500010]; const int inf = 1e9; int count(int x, int y, int k) { int cnt = 0; for(int i = 0; i < n; i++) { if(x <= range[i].first && range[i].first <= y && k <= range[i].second) { ++cnt; } } return cnt; } void init(int N, int A[], int B[]) { n = N; for(int i = 0; i < n; i++) { range[i] = pii(A[i], B[i]); } } int can(int M, int K[]) { sort(K, K+M); int sum = 0; for(int i = 0; i < M; i++) { sum += K[i]; if(sum > n) return false; } for(int i = 0; i < M; i++) { dp[i] = count(1, K[i], K[i]) - K[i]; for(int j = 0; j < i; j++) { dp[i] = min(dp[i], dp[j] + count(K[j] + 1, K[i], K[i]) - K[i]); } } int ans = inf; for(int i = 0; i < M; i++) { ans = min(ans, dp[i]); } return (ans >= 0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...