Submission #561942

#TimeUsernameProblemLanguageResultExecution timeMemory
561942Joshi503Teams (IOI15_teams)C++14
34 / 100
4080 ms31672 KiB
#include <teams.h>
#include <bits/stdc++.h>
using namespace std;
 
using ll = long long;
using pi = pair<int, int>;
#define tcT template<class T
#define tcTU tcT, class U
tcT> using V = vector<T>;
tcT, size_t SZ > using AR = array<T, SZ>;
using vi = V<int>;
#define f first
#define s second

#define sz(x) int((x).size())
#define all(x) bg(x), end(x)
#define sor(x) sort(all(x)) 
#define pb push_back
 
#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = ((b)-1); i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define rep(a) F0R(_,a)
#define each(a,x) for (auto& a: x)
 
int n;
vector<pi> alfa;
 
bool cmp(const pi& x, const pi& y){
    return x.s < y.s;
}
 
void init(int N, int A[], int B[]) {
    n = N;
  	alfa.resize(n);
    F0R(i, n){
        alfa[i].f = A[i];
    }
    F0R(i, n){
        alfa[i].s = B[i];
    }
 
    sort(alfa.begin(), alfa.begin() + n, cmp);  
 
//     F0R(i, n){
//         cout << alfa[i].f << " ";
//     }
//     cout << "\n";
//     F0R(i, n){
//         cout << alfa[i].s << " ";
//     }
//     cout << "\n";
}
 
int can(int M, int K[]) {
    multiset<int> k;
    sort(K, K + M);
    F0R(i, M){
		F0R(j, K[i]){
    	    k.insert(K[i]);
		}
    }
 
    // for(auto it = k.begin(); it != k.end(); ++it){
    //     cout << *it << " ";
    // }
 
    // cout << "\n";
 
	F0R(i, n){
		auto it = k.lower_bound(alfa[i].f);
        if(it == k.end()) continue;
        // cout << alfa[i].f << " " << alfa[i].s << " " << *it << "\n";
 
		if(alfa[i].f <= (*it) && (*it) <= alfa[i].s){
            k.erase(it);
        }
	}
 
    
    return sz(k) == 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...