답안 #296926

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
296926 2020-09-11T05:08:23 Z Bill_00 삶의 질 (IOI10_quality) C++14
100 / 100
2507 ms 122872 KB
#include <quality.h>
#include <bits/stdc++.h>
using namespace std;
int a[3001][3001],x,y,X,Y,dp[3001][3001];
bool check(int k){
	for(int i=1;i<=x;i++){
		for(int j=1;j<=y;j++){
			if(a[i][j]<=k){
				dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+1;
			}
			else dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1];
			if(i>=X && j>=Y){
				int o=dp[i][j]-dp[i][j-Y]-dp[i-X][j]+dp[i-X][j-Y];
				//cout << o << ' ' << i <<  ' ' << j << ' ' << k << endl;
				if(o>(X*Y/2)) return 0;
			}
		}
	}
	return 1;
}
int rectangle(int R, int C, int H, int W, int Q[3001][3001]){
	x=R;
	y=C;
	X=H;
	Y=W;
	for(int i=0;i<R;i++){
		for(int j=0;j<C;j++){
			a[i+1][j+1]=Q[i][j];
		}
	}
	int l=1,r=R*C;
	while(l<r){
		int mid=l+r>>1;
		check(mid)?l=mid+1:r=mid;
		//cout << l << ' ' << r << endl;
	}
	check(l)?l=l+1:l=l;
	return l;
}

Compilation message

quality.cpp: In function 'int rectangle(int, int, int, int, int (*)[3001])':
quality.cpp:33:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   33 |   int mid=l+r>>1;
      |           ~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 640 KB Output is correct
2 Correct 1 ms 768 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 640 KB Output is correct
2 Correct 1 ms 768 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1664 KB Output is correct
5 Correct 3 ms 1664 KB Output is correct
6 Correct 3 ms 1792 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 640 KB Output is correct
2 Correct 1 ms 768 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1664 KB Output is correct
5 Correct 3 ms 1664 KB Output is correct
6 Correct 3 ms 1792 KB Output is correct
7 Correct 23 ms 5528 KB Output is correct
8 Correct 23 ms 5504 KB Output is correct
9 Correct 20 ms 5376 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 640 KB Output is correct
2 Correct 1 ms 768 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1664 KB Output is correct
5 Correct 3 ms 1664 KB Output is correct
6 Correct 3 ms 1792 KB Output is correct
7 Correct 23 ms 5528 KB Output is correct
8 Correct 23 ms 5504 KB Output is correct
9 Correct 20 ms 5376 KB Output is correct
10 Correct 252 ms 30840 KB Output is correct
11 Correct 263 ms 30840 KB Output is correct
12 Correct 121 ms 21500 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 640 KB Output is correct
2 Correct 1 ms 768 KB Output is correct
3 Correct 1 ms 640 KB Output is correct
4 Correct 3 ms 1664 KB Output is correct
5 Correct 3 ms 1664 KB Output is correct
6 Correct 3 ms 1792 KB Output is correct
7 Correct 23 ms 5528 KB Output is correct
8 Correct 23 ms 5504 KB Output is correct
9 Correct 20 ms 5376 KB Output is correct
10 Correct 252 ms 30840 KB Output is correct
11 Correct 263 ms 30840 KB Output is correct
12 Correct 121 ms 21500 KB Output is correct
13 Correct 2473 ms 122872 KB Output is correct
14 Correct 2507 ms 122868 KB Output is correct
15 Correct 2174 ms 121184 KB Output is correct