Submission #592672

# Submission time Handle Problem Language Result Execution time Memory
592672 2022-07-09T12:54:34 Z l_reho Teams (IOI15_teams) C++14
34 / 100
4000 ms 16296 KB

#include <bits/stdc++.h>
using namespace std;

vector<pair<int, int>> ranges;
int n;

bool compare(pair<int, int> p1, pair<int, int> p2){
	return (p1.second < p2.second) || ((p1.second == p2.second && p1.first > p2.first));
}

void init(int N, int A[], int B[]) {
	n = N;
	
	for(int i = 0; i < N; i++) ranges.push_back({A[i], B[i]}); 
	sort(ranges.begin(), ranges.end(), compare);

}

int can(int M, int K[]) {
	
	vector<bool> assigned(n, false);
	
	sort(K, K+M);
	
	for(int i = 0; i < M; i++){
		// cerco lo studente più a sinsistra in ranges che contiene K
		
		int cnt = 0;
		bool ok = false;
		
		
		
		// naive O(N)
		for(int j = 0; j < n; j++){
			int start = ranges[j].first;
			int end = ranges[j].second;
			
			if(start <= K[i] && end >= K[i] && !assigned[j]) cnt++, assigned[j] = true;
			
			if(cnt == K[i]){ok = true; break;}
			
		}
		
		// logn O(logN)
		
		// dato un indice k, determinare il numero di ranges che contengono K[i] nel prefisso [0,k] (assegnabili)
		
		if(!ok) return 0;
		
		
	}
	
	
	return 1;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 296 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 300 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 300 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 1 ms 212 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 300 KB Output is correct
22 Correct 0 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 1 ms 212 KB Output is correct
25 Correct 1 ms 296 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 3404 KB Output is correct
2 Correct 22 ms 3324 KB Output is correct
3 Correct 19 ms 3348 KB Output is correct
4 Correct 21 ms 3596 KB Output is correct
5 Correct 22 ms 3020 KB Output is correct
6 Correct 18 ms 2960 KB Output is correct
7 Correct 14 ms 2996 KB Output is correct
8 Correct 16 ms 2992 KB Output is correct
9 Correct 1727 ms 3020 KB Output is correct
10 Correct 667 ms 2732 KB Output is correct
11 Correct 76 ms 2764 KB Output is correct
12 Correct 16 ms 2892 KB Output is correct
13 Correct 17 ms 3148 KB Output is correct
14 Correct 21 ms 3136 KB Output is correct
15 Correct 20 ms 3280 KB Output is correct
16 Correct 19 ms 3276 KB Output is correct
17 Correct 15 ms 3308 KB Output is correct
18 Correct 15 ms 3296 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 47 ms 3780 KB Output is correct
2 Correct 57 ms 3772 KB Output is correct
3 Execution timed out 4042 ms 4184 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 296 ms 16296 KB Output is correct
2 Correct 301 ms 16292 KB Output is correct
3 Execution timed out 4006 ms 15308 KB Time limit exceeded
4 Halted 0 ms 0 KB -