Submission #600975

# Submission time Handle Problem Language Result Execution time Memory
600975 2022-07-21T09:41:01 Z l_reho Quality Of Living (IOI10_quality) C++14
0 / 100
1 ms 340 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();
				
				advance(it, (W*H)/2);
				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-1]);
					st.insert(Q[j][i]);
					
				}
				auto it = st.begin();
				
				advance(it, (W*H)/2);
				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();
				
		advance(it, (W*H)/2);
		ans = min(ans, *it);
	
		back^=1;
	}
	
	return ans;
}

# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -