Submission #600984

# Submission time Handle Problem Language Result Execution time Memory
600984 2022-07-21T09:49:00 Z l_reho Quality Of Living (IOI10_quality) C++14
40 / 100
5000 ms 3660 KB

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

int rectangle(int R, int C, int H, int W, int Q[3001][3001]) {
	
	int ans = 0;
	
	set<int> st;
	
	for(int i = 0; i < W; i++)
		for(int j = 0; j < H; j++) st.insert(Q[j][i]);
	
	auto it = st.begin();
	
	advance(it, (W*H)/2);
	
	ans = *it;
	
	bool back = 0;
	
	for(int k = 0; k <= R-H; k++){
		
		if(!back){
			for(int i = 1; i <= C-W; i++){
				// elimino la parte precedente
				for(int j = k; j < H+k; j++){
					st.erase(Q[j][i-1]);
					st.insert(Q[j][i+W-1]);
				}
				auto it = st.begin();
				
				int mid = (W*H)/2;
				advance(it, mid);
				ans = min(ans, *it);
			}
			
		}else{
			
			for(int i = C-W-1; i >= 0; i--){
				// elimino la parte precedente
				for(int j = k; j < H+k; j++){
					st.erase(Q[j][i+W]);
					st.insert(Q[j][i]);
					
				}
				auto it = st.begin();
				
				int mid = (W*H)/2;
				advance(it, mid);
				ans = min(ans, *it);
			}
			
			
		}
		
		if(!back){
			if(k+H < R){
				for(int i = C-W; i < C; i++){
					st.erase(Q[k][i]);
					st.insert(Q[k+H][i]);				
				}
			}
		}else{
			if(k+H < R){
				for(int i = 0; i < W; i++){
					st.erase(Q[k][i]);
					st.insert(Q[k+H][i]);
				}
			}
		}
		auto it = st.begin();
				
		int mid = (W*H)/2;
		advance(it, mid);
		ans = min(ans, *it);
	
		back^=1;
	}
	
	return ans;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 432 KB Output is correct
2 Correct 1 ms 432 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 432 KB Output is correct
2 Correct 1 ms 432 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 42 ms 852 KB Output is correct
5 Correct 53 ms 808 KB Output is correct
6 Correct 25 ms 1056 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 432 KB Output is correct
2 Correct 1 ms 432 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 42 ms 852 KB Output is correct
5 Correct 53 ms 808 KB Output is correct
6 Correct 25 ms 1056 KB Output is correct
7 Execution timed out 5051 ms 3660 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 432 KB Output is correct
2 Correct 1 ms 432 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 42 ms 852 KB Output is correct
5 Correct 53 ms 808 KB Output is correct
6 Correct 25 ms 1056 KB Output is correct
7 Execution timed out 5051 ms 3660 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 432 KB Output is correct
2 Correct 1 ms 432 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 42 ms 852 KB Output is correct
5 Correct 53 ms 808 KB Output is correct
6 Correct 25 ms 1056 KB Output is correct
7 Execution timed out 5051 ms 3660 KB Time limit exceeded
8 Halted 0 ms 0 KB -