# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1233075 | porquenomedejainiciarsesion | 삶의 질 (IOI10_quality) | C++20 | 5093 ms | 31664 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int rectangle(int R, int C, int H, int W, int Q[3001][3001]){
int ans=100000000000;
for(int k=0;k<R-H+1;k++){
set<int> l,r,S;
for(int i=k;i<H+k;i++){
for(int j=0;j<W;j++){
S.insert(Q[i][j]);
}
}
int con=1;
int act;
for(auto x:S){
if(con<=H*W/2){
l.insert(x);
}else if(con==H*W/2+1){
act=x;
}else{
r.insert(x);
}
con++;
}
ans=min(ans,act);
/////////////////////
for(int i=W;i<C;i++){
bool ok=true;
for(int j=k;j<H+k;j++){
l.erase(Q[j][i-W]);
r.erase(Q[j][i-W]);
if(Q[j][i]>act){
r.insert(Q[j][i]);
}else{
l.insert(Q[j][i]);
}
if(Q[j][i-W]==act){
ok=false;
}
}
///////
if(!ok){
if(r.size()>l.size()){
auto uwu=r.begin();
act=*uwu;
r.erase(*uwu);
}else{
auto uwu=l.end();
uwu=prev(uwu);
act=*uwu;
l.erase(*uwu);
}
}
//////
if(r.size()>l.size()){
int xd=r.size()-l.size();
xd=xd/2;
for(int i=0;i<xd;i++){
auto uwu=r.begin();
l.insert(act);
act=*uwu;
r.erase(*uwu);
}
}else{
int xd=l.size()-r.size();
xd=xd/2;
for(int i=0;i<xd;i++){
auto uwu=l.end();
uwu=prev(uwu);
r.insert(act);
act=*uwu;
l.erase(*uwu);
}
}
ans=min(ans,act);
}
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |