이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int nbObjets, nbCadres;
vector<pair<int, int>> objets;
vector<int> cadres;
bool estPossible(int premier) {
int iCadre = premier;
for(int iObjet = 0;iObjet < nbObjets;iObjet++) {
if(iCadre != nbCadres && objets[iObjet].second <= cadres[iCadre]) {
iCadre++;
}
}
return (iCadre == nbCadres);
}
int main() {
ios_base::sync_with_stdio(false);
cin >> nbObjets >> nbCadres;
for(int iObjet = 0;iObjet < nbObjets;iObjet++) {
int taille, valeur;
cin >> taille >> valeur;
objets.push_back({valeur, taille});
}
sort(objets.begin(), objets.end());
for(int iCadre = 0;iCadre < nbCadres;iCadre++) {
int taille;
cin >> taille;
cadres.push_back(taille);
}
sort(cadres.begin(), cadres.end());
int deb = -1, fin = nbCadres + 1;
while(fin - deb > 1) {
int mil = (deb + fin) / 2;
if(estPossible(mil))
fin = mil;
else
deb = mil;
}
cout << nbCadres - fin << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |