# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
583801 | Lucpp | Rectangles (IOI19_rect) | C++17 | 5105 ms | 947756 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "rect.h"
#include <bits/stdc++.h>
using namespace std;
#define sz(x) ((int)(x).size())
typedef long long ll;
vector<vector<int>> fen;
void add(bool b, int i, int x){
for(i++; i < sz(fen[0]); i+=i&-i) fen[b][i] += x;
}
int qry(bool b, int i){
int ans = 0;
for(i++; i > 0; i-=i&-i) ans += fen[b][i];
return ans;
}
int qry(bool b, int i, int j){
if(i > 0) return qry(b, j)-qry(b, i-1);
else return qry(b, j);
}
long long count_rectangles(vector<vector<int>> a) {
int n = sz(a), m = sz(a[0]);
vector<vector<short>> r1(n, vector<short>(m, -1)), r2(n, vector<short>(m, -1));
for(int i = 1; i < n-1; i++){
stack<pair<int, int>> st({{a[i][0], 0}});
for(int j = 1; j < m; j++){
while(!st.empty() && a[i][j] > st.top().first){
auto [h, k] = st.top();
st.pop();
r2[i][k] = j-1;
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |