Submission #274552

# Submission time Handle Problem Language Result Execution time Memory
274552 2020-08-19T12:45:07 Z shinjan Quality Of Living (IOI10_quality) C++14
60 / 100
5000 ms 18856 KB
#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 -