# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
21793 | sbansalcs | 팀들 (IOI15_teams) | C++14 | 4000 ms | 13728 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "teams.h"
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 5e5+5;
int A[N],B[N];
int n;
int del[N];
int sz=0;
int dp[N];
void init(int _n, int a[], int b[]) {
n=_n;
for(int i=1;i<=n;i++) {
A[i]=a[i-1];
B[i]=b[i-1];
}
}
// int getUnder(int k, int y) {
// int tot=0;
// for(int i=1;i<=n;i++) {
// if(A[i]<=k && B[i]>=k) tot++;
// }
// for(int i=sz;i>=1;i--) {
// }
// }
// bool fx(int k) {
// return 1;
// }
int getCount(int a, int b) {
int tot=0;
for(int i=1;i<=n;i++) {
if(A[i]>a && A[i]<=b && B[i]>=b) tot++;
}
return tot;
}
int can(int M, int K[]) {
sort(K,K+M);
vector<pair<int,int>> vt;
for(int i=0;i<M;i++) {
if(vt.size()==0 || vt[vt.size()-1].first!=K[i]) {
vt.push_back({K[i],1});
}
else {
vt[vt.size()-1].second++;
}
}
int n2 = vt.size();
int mini=0;
for(int i=0;i<n2;i++) {
dp[i]=getCount(0,vt[i].first)-vt[i].first*vt[i].second;
for(int j=0;j<i;j++) {
dp[i]=min(dp[i],dp[j]-vt[i].first*vt[i].second+getCount(vt[j].first,vt[i].first));
}
if(dp[i]<0) return 0;
}
return 1;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |