Submission #1045409

#TimeUsernameProblemLanguageResultExecution timeMemory
1045409vjudge1Rectangles (IOI19_rect)C++17
10 / 100
5085 ms23784 KiB
#include "rect.h" #include<bits/stdc++.h> using namespace std; bitset<80> ok[80][80][80]; long long count_rectangles(std::vector<std::vector<int> > a) { int n=a.size(),m=a[0].size(); int ans=0; for(int i=1;i<n-1;i++) for(int j=1;j<m-1;j++) { for(int k=i;k<n-1;k++) for(int l=j;l<m-1;l++) ok[i][j][k][l]=a[k][l]<min(a[i-1][l],a[k][j-1]); for(int k=i+1;k<n-1;k++) ok[i][j][k][j]=ok[i][j][k][j]&ok[i][j][k-1][j]; for(int k=j+1;k<m-1;k++) ok[i][j][i][k]=ok[i][j][i][k]&ok[i][j][i][k-1]; for(int k=i+1;k<n-1;k++) for(int l=j+1;l<m-1;l++) ok[i][j][k][l]=ok[i][j][k][l-1]&ok[i][j][k-1][l]&ok[i][j][k][k]; for(int k=i;k;k--) for(int l=j;l;l--) ok[i][j][k][l]=a[k][l]<min(a[i+1][l],a[k][j+1]); for(int k=i-1;k;k--) ok[i][j][k][j]=ok[i][j][k][j]&ok[i][j][k+1][j]; for(int k=j-1;k;k--) ok[i][j][i][k]=ok[i][j][i][k]&ok[i][j][i][k+1]; for(int k=i-1;k;k--) for(int l=j-1;l;l--) ok[i][j][k][l]=ok[i][j][k][l+1]&ok[i][j][k+1][l]&ok[i][j][k][k]; ok[i][j][i][j]=a[i][j]<min({a[i][j-1],a[i-1][j],a[i+1][j],a[i][j+1]}); } for(int i=1;i<n-1;i++)for(int j=1;j<m-1;j++) for(int k=i;k<n-1;k++) for(int l=j;l<m-1;l++) ans+=ok[i][j][k][l]&&ok[k][l][i][j]; return ans; }
#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...