이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "quality.h"
using namespace std;
set<int> active;
int getmedian(){
int cnt = 0;
int median = -1;
for(int a : active){
if(cnt == active.size() / 2){
median = a;
break;
}
cnt++;
}
return median;
}
int rectangle(int R, int C, int H, int W, int Q[3001][3001]) {
active.clear();
for(int top = 0; top < H; top ++){
for(int left = 0; left < W; left++ ){
active.insert(Q[top][left]);
}
}
int ans = getmedian();
for(int top = 0; top <= R - H; top++){
//cout << top <<":\n";
//if top % 2 === 0, we go from left to right
if(top % 2 == 0){
if(top > 0){
for(int left = 0; left < W; left++ ){
active.erase(Q[top - 1][left]);
active.insert(Q[top + H - 1][left]);
}
ans = min(ans, getmedian());
}
for(int left = 1; left <=C - W;left++){
//iterate left boundary of rectangle
//cout << left << "->";
for(int t = top; t < top + H; t++){
active.erase(Q[t][left - 1]);
active.insert(Q[t][left + W - 1]);
}
ans = min(ans, getmedian());
}
}
else{
if(top > 0){
for(int right = C - 1; right >= C - W; right-- ){
active.erase(Q[top - 1][right]);
active.insert(Q[top + H - 1][right]);
}
ans = min(ans, getmedian());
}
//we go from right to left
for(int right = C - 2; right >=W - 1; right--){
//cout << right <<"->";
//iterate left boundary of rectangle
for(int t = top; t < top + H; t++){
active.erase(Q[t][right + 1]);
active.insert(Q[t][right - W +1]);
}
ans = min(ans, getmedian());
}
}
//cout << endl;
}
return ans;
}
/***********/
컴파일 시 표준 에러 (stderr) 메시지
quality.cpp: In function 'int getmedian()':
quality.cpp:11:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::set<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
11 | if(cnt == active.size() / 2){
| ~~~~^~~~~~~~~~~~~~~~~~~~| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |