Submission #1290813

#TimeUsernameProblemLanguageResultExecution timeMemory
1290813lambd47Rectangles (IOI19_rect)C++20
0 / 100
2817 ms620 KiB
#include<bits/stdc++.h> #include "rect.h" using namespace std; #define ll long long #define L(i,j,k) for(int i=(j);i<=(k);i++) #define R(i,j,k) for(int i=(j);i>=(k);i--) #define sz(v) ((int)(v).size()) #define all(v) (v).begin(),(v).end() long long count_rectangles(std::vector<std::vector<int> > vec) { int n=sz(vec); int m=sz(vec[0]); const int MOD=1e9+7; vector<vector<int>> up(n,vector<int> (m,-1)); vector<vector<int>> dwn(n,vector<int> (m,MOD));//mod L(j,1,m-2){ //olhando pra fila j vector<int> fila; L(i,0,n-1){ while(!fila.empty() && vec[fila.back()][j]<vec[i][j]){ dwn[fila.back()][j]=i; fila.pop_back(); } if(!fila.empty()){ up[i][j]=fila.back(); } fila.push_back(i); } } vector<vector<int>> lef(n,vector<int> (m,-1)); vector<vector<int>> rig(n,vector<int> (m,MOD));//mod L(i,1,n-2){ vector<int> fila; L(j,0,m-1){ while(!fila.empty() && vec[i][fila.back()]<vec[i][j]){ rig[i][fila.back()]=j; fila.pop_back(); } if(!fila.empty()){ lef[i][j]=fila.back(); } fila.push_back(j); } } /* L(i,0,n-1){ L(j,0,m-1){ cout<<rig[i][j]<<" "; } cout<<"\n"; } */ int resp=0; L(a,1,n-2){ L(b,a,n-2){ L(c,1,m-2){ L(d,c,m-2){ int ok=1; L(i,a,b){ L(j,c,d){ if(up[i][j]<a-1 || dwn[i][j]>b+1 || lef[i][j]<c-1 || rig[i][j]>d+1)ok=0; } } resp+=ok; } } } } return resp; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...