# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
424886 | ollel | 팀들 (IOI15_teams) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include <iostream>
#include "teams.h"
using namespace std;
#define rep(i,a,b) for(int i = a; i < b; i++)
#define pb push_back
#define lso(x) x&(-x)
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
struct seg {
int a, b;
bool marked = false;
seg(int A, int B) {a = A; b = B;}
}
vector<seg> s;
void init(int n, int a[], int b[]) {
s.resize(n);
rep(i,0,n) {
s[i].a = a[i];
s[i].b = b[i];
}
sort(s.begin(), s.end(), [](seg x, seg y) {
return x.b < y.b;
})
}
int can(int m, int k[]) {
vi p(m);
rep(i,0,m) p[i] = k[i];
sort(p.begin(), p.end());
rep(i,0,n) s[i].marked = false;
rep(i,0,m) {
int t = p[i], left = p[i];
rep(j, 0, n) {
if((!s[j].marked) && s[j].a <= t && s[j].b >= t) {
left--;
s[j].marked = true;
if (left == 0) break;
}
}
if (left > 0) return 0;
}
return 1;
}