Submission #1233606

#TimeUsernameProblemLanguageResultExecution timeMemory
1233606simplemind_31Quality Of Living (IOI10_quality)C++20
0 / 100
0 ms576 KiB
#include "quality.h"
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> intset;
int mini=1e9;
int help[3001][3001];
int rectangle(int R, int C, int H, int W, int Q[3001][3001]){
	int l=1,r=R*C;
	while(l<r){
		bool xd=false;
		for(int i=0;i<R;i++){
			for(int j=0;j<C;j++){
				help[i][j]=0;
			}
		}
		int mid=(l+r)>>1;
		for(int i=0;i<R;i++){
			for(int j=0;j<C;j++){
				if(Q[i][j]<=mid){
					help[max(i-H/2,0)][max(j-W/2,0)]++;
					help[max(i-H/2,0)][min(j+W/2+1,3000)]--;
					help[min(i+H/2+1,3000)][max(j-W/2,0)]--;
					help[min(i+H/2+1,3000)][min(j+W/2+1,3000)]++;
				}else{
					help[max(i-H/2,0)][max(j-W/2,0)]--;
					help[max(i-H/2,0)][min(j+W/2+1,3000)]++;
					help[min(i+H/2+1,3000)][max(j-W/2,0)]++;
					help[min(i+H/2+1,3000)][min(j+W/2+1,3000)]--;
				}
			}
		}
		for(int i=1;i<R;i++){
			help[i][0]+=help[i-1][0];
		}
		for(int i=1;i<C;i++){
			help[0][i]+=help[0][i-1];
		}
		for(int i=1;i<R && !xd;i++){
			for(int j=1;j<C && !xd;j++){
				help[i][j]+=help[i-1][j]+help[i][j-1]-help[i-1][j-1];
			}
		}
		for(int i=0;i<R && !xd;i++){
			for(int j=0;j<R && !xd;j++){
				if(help[i][j]>0){
					xd=true;
				}
			}
		}
		if(xd){
			r=mid;
		}else{
			l=mid+1;
		}
	}
	return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...