Submission #866657

# Submission time Handle Problem Language Result Execution time Memory
866657 2023-10-26T15:52:29 Z nasir_bashirov Quality Of Living (IOI10_quality) C++17
60 / 100
5000 ms 16724 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

#include "quality.h"
#include <bits/stdc++.h>
using namespace std;

#define db long double
#define ll long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define vii vector<pii>
#define vll vector<pll>
#define endl '\n'
#define all(x) x.begin(), x.end()
#define fastio\
    ios_base::sync_with_stdio(0);\
    cin.tie(0);\
    cout.tie(0)\

struct fenwickTree{
    int n;
    vi BIT;
    fenwickTree(int sz){
        n = sz;
        BIT.resize(n + 1, 0);
    }
    void update(int i, int v){
        if(i == 0)    return;
        while(i <= n){
            BIT[i] += v;
            i += i & (-i);
        }
    }
    int query(int l, int r){
        if(l > r)   return 0;   
        if(l != 1)    return query(1, r) - query(1, l - 1);
        int res = 0;
        while(r > 0){
            res += BIT[r];
            r -= r & (-r);
        }
        return res;
    }
};

int rectangle(int r, int c, int h, int w, int Q[3001][3001]) {
	int res = 1e9;
	for(int i = 1; i <= r - h + 1; i++){
		fenwickTree t(r * c);
		for(int a = 1; a < w; a++){
			for(int b = i; b <= i + h - 1; b++){
				t.update(Q[b - 1][a - 1], 1);
			}
		}
		for(int a = w; a <= c; a++){
			for(int b = i; b <= i + h - 1; b++){
				t.update(Q[b - 1][a - 1], 1);
			}
			if(a > w){
				for(int b = i; b <= i + h - 1; b++){
					t.update(Q[b - 1][a - w - 1], -1);
				}
			}
			int lx = 1, rx = r * c, med;
			while(lx <= rx){
				int mid = (lx + rx) / 2;
				if(t.query(1, mid) >= h * w / 2 + 1){
					med = mid;
					rx = mid - 1;
				}
				else{
					lx = mid + 1;
				}
			}
			res = min(res, med);
		}
	}
	return res;
}

Compilation message

quality.cpp: In function 'int rectangle(int, int, int, int, int (*)[3001])':
quality.cpp:67:28: warning: 'med' may be used uninitialized in this function [-Wmaybe-uninitialized]
   67 |    int lx = 1, rx = r * c, med;
      |                            ^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 6 ms 2392 KB Output is correct
5 Correct 7 ms 2476 KB Output is correct
6 Correct 5 ms 2596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 6 ms 2392 KB Output is correct
5 Correct 7 ms 2476 KB Output is correct
6 Correct 5 ms 2596 KB Output is correct
7 Correct 180 ms 4956 KB Output is correct
8 Correct 125 ms 4956 KB Output is correct
9 Correct 176 ms 5124 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 6 ms 2392 KB Output is correct
5 Correct 7 ms 2476 KB Output is correct
6 Correct 5 ms 2596 KB Output is correct
7 Correct 180 ms 4956 KB Output is correct
8 Correct 125 ms 4956 KB Output is correct
9 Correct 176 ms 5124 KB Output is correct
10 Execution timed out 5032 ms 16724 KB Time limit exceeded
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 6 ms 2392 KB Output is correct
5 Correct 7 ms 2476 KB Output is correct
6 Correct 5 ms 2596 KB Output is correct
7 Correct 180 ms 4956 KB Output is correct
8 Correct 125 ms 4956 KB Output is correct
9 Correct 176 ms 5124 KB Output is correct
10 Execution timed out 5032 ms 16724 KB Time limit exceeded
11 Halted 0 ms 0 KB -