Submission #404054

#TimeUsernameProblemLanguageResultExecution timeMemory
404054EveruleRectangles (IOI19_rect)C++17
Compilation error
0 ms0 KiB
#include "rect.h" #include<bits/stdc++.h> using namespace std; using ll = long long; long long count_rectangles(std::vector<std::vector<int> > a) { int n = a.size(), m = a[0].size(); vector hr(m, vector(m, vector(0,pair(0, 0)))); vector vr(b, vector(m, pair(pair(-100000000,0), pair(100000000,0)))); for(int i=0;i<n;i++){ stack<int> stk; for(int j=0;j<m;j++){ while(!stk.empty()){ int k = stk.top(); if(hr[k][j].empty() || hr[k][j].back().second + 1 != i){ hr[k][j].emplace_back(i,i); } else{ hr[k][j].back().second++; } if(a[i][k] < a[i][j]){ stk.pop(); } else{ break; } } stk.push(j); } } /* for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<i<<" "<<j<<"\n"; for(auto &[l,r] : hr[i][j]){ cout<<l<<" "<<r<<"\n"; } cout<<"\n\n"; } } */ for(int j=m-1;j>=0;--j){ stack<int> stk; for(int i=0;i<n;i++){ while(!stk.empty()){ int k = stk.top(); if(a[k][j] < a[i][j]){ vr[k][j].second.first = i; int lf = j; if(j < m-1 && vr[k][j+1].second.first == i){ lf = max(lf, vr[k][j+1].second.second); } if(j < m-1 && vr[i][j+1].first.first == k){ lf = max(lf, vr[i][j+1].first.second); } vr[k][j].second.second = lf; stk.pop(); } else{ vr[i][j].first.first = k; int lf = j; if(j < m-1 && vr[k][j+1].second.first == i){ lf = max(lf, vr[k][j+1].second.second); } if(j < m-1 && vr[i][j+1].first.first == k){ lf = max(lf, vr[i][j+1].first.second); } vr[i][j].first.second = lf; break; } } stk.push(i); } } /*for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<i<<" "<<j<<"\n"; cout<<vr[i][j].first.first<<" "<<vr[i][j].first.second<<" "<<vr[i][j].second.first<<" "<<vr[i][j].second.second<<"\n"; } } cout<<"\n\n"; */ ll ans = 0; for(int i=0;i<m;i++){ for(int j=i+2;j<m;j++){ for(auto &[l,r] : hr[i][j]){ for(int k=max(l-1,0);k<=min(r+1,n-1);k++){ auto [l1,d1] = vr[k][i+1].first; auto [r2,d2] = vr[k][i+1].second; if(l <= l1 + 1 && l1 + 1 < k && d1 >= j-1){ //cout<<i<<" "<<j<<" "<<l1<<" "<<k<<"\n"; ans++; } if(r2 - 1 <= r && k < r2 - 1 && d2 >= j-1){ //cout<<i<<" "<<j<<" "<<k<<" "<<r2<<"\n"; ans++; } } } } } return ans; }

Compilation message (stderr)

rect.cpp: In function 'long long int count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:8:15: error: 'b' was not declared in this scope
    8 |     vector vr(b, vector(m, pair(pair(-100000000,0), pair(100000000,0))));
      |               ^