#include <iostream>
#include <bits/stdc++.h>
#define maxN 3000
#include "quality.h"
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int fen[maxN*maxN+1];
void add(int val,int maks)
{
for(int i=val;i<=maks;i+=(i&(-i)))
{
fen[i]++;
}
}
void brisi(int val,int maks)
{
for(int i=val;i<=maks;i+=(i&(-i)))
{
fen[i]--;
}
}
int sum(int ind)
{
int ans=0;
for(int i=ind;i>=1;i-=(i&(-i)))
{
ans+=fen[i];
}
return ans;
}
int findMedian(int maks,int mineq)
{
int r=maks,l=1;
int mid=(r+l)/2;
//cout<<"trazimo:"<<mineq<<endl;
while(l<r-1)
{
//cout<<"l="<<l<<" r="<<r<<" mid="<<mid<<endl;
if(sum(mid)>=mineq)
{
r=mid;
}
else{
l=mid;
}
mid=(r+l)/2;
}
if(sum(l)==mineq)
{
return l;
}
return r;
}
int rectangle(int r,int c,int h,int w,int q[3001][3001])
{
int ans=INT_MAX;
int mineq=(h*w)/2+1;
for(int i=0;i+h-1<r;i++)
{
for(int ind=i;ind<h+i;ind++)
{
for(int j=0;j<w;j++)
{
add(q[ind][j],r*c);
}
}
ans=min(ans,findMedian(r*c,mineq));
for(int j=1;j+w-1<c;j++)
{
//cout<<"gornje levo: "<<i<<" "<<j<<endl;
for(int ind=i;ind<i+h;ind++)
{
brisi(q[ind][j-1],r*c);
}
for(int ind=i;ind<i+h;ind++)
{
add(q[ind][j+w-1],r*c);
}
//cout<<"median: "<<findMedian(r*c,mineq)<<endl;
ans=min(ans,findMedian(r*c,mineq));
}
for(int ind=i;ind<h+i;ind++)
{
for(int j=0;j<w;j++)
{
brisi(q[ind][c-1-j],r*c);
}
}
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Output is correct |
2 |
Correct |
1 ms |
512 KB |
Output is correct |
3 |
Correct |
1 ms |
512 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Output is correct |
2 |
Correct |
1 ms |
512 KB |
Output is correct |
3 |
Correct |
1 ms |
512 KB |
Output is correct |
4 |
Correct |
13 ms |
900 KB |
Output is correct |
5 |
Correct |
12 ms |
896 KB |
Output is correct |
6 |
Correct |
11 ms |
896 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Output is correct |
2 |
Correct |
1 ms |
512 KB |
Output is correct |
3 |
Correct |
1 ms |
512 KB |
Output is correct |
4 |
Correct |
13 ms |
900 KB |
Output is correct |
5 |
Correct |
12 ms |
896 KB |
Output is correct |
6 |
Correct |
11 ms |
896 KB |
Output is correct |
7 |
Correct |
347 ms |
2800 KB |
Output is correct |
8 |
Correct |
325 ms |
2808 KB |
Output is correct |
9 |
Correct |
315 ms |
2688 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Output is correct |
2 |
Correct |
1 ms |
512 KB |
Output is correct |
3 |
Correct |
1 ms |
512 KB |
Output is correct |
4 |
Correct |
13 ms |
900 KB |
Output is correct |
5 |
Correct |
12 ms |
896 KB |
Output is correct |
6 |
Correct |
11 ms |
896 KB |
Output is correct |
7 |
Correct |
347 ms |
2800 KB |
Output is correct |
8 |
Correct |
325 ms |
2808 KB |
Output is correct |
9 |
Correct |
315 ms |
2688 KB |
Output is correct |
10 |
Execution timed out |
5023 ms |
18856 KB |
Time limit exceeded |
11 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
512 KB |
Output is correct |
2 |
Correct |
1 ms |
512 KB |
Output is correct |
3 |
Correct |
1 ms |
512 KB |
Output is correct |
4 |
Correct |
13 ms |
900 KB |
Output is correct |
5 |
Correct |
12 ms |
896 KB |
Output is correct |
6 |
Correct |
11 ms |
896 KB |
Output is correct |
7 |
Correct |
347 ms |
2800 KB |
Output is correct |
8 |
Correct |
325 ms |
2808 KB |
Output is correct |
9 |
Correct |
315 ms |
2688 KB |
Output is correct |
10 |
Execution timed out |
5023 ms |
18856 KB |
Time limit exceeded |
11 |
Halted |
0 ms |
0 KB |
- |