# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
427083 |
2021-06-14T12:17:22 Z |
Pbezz |
Rectangles (IOI19_rect) |
C++14 |
|
5000 ms |
67600 KB |
#include "rect.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
typedef pair<ll,ll> pii;
const ll MAXN = 2e5+5;
const ll INF = 1e9+7;
long long count_rectangles(std::vector<std::vector<int> > a) {
ll n=a.size(),m=a[0].size(),i,j,ii,jj,A,B,ans=0;
bool ok;
int nearest[n+1][m+1][4];
stack<int>s;
for(i=0;i<n;i++){//left
while(!s.empty())s.pop();
for(j=m-1;j>=0;j--){
while(!s.empty() && a[i][s.top()]<a[i][j]){
s.pop();
}
if(s.empty()){
nearest[i][j][0]=m;
}else{
nearest[i][j][0]=s.top();
}
s.push(j);
}
}
for(i=0;i<n;i++){//right
while(!s.empty())s.pop();
for(j=0;j<m;j++){
while(!s.empty() && a[i][s.top()]<a[i][j]){
s.pop();
}
if(s.empty()){
nearest[i][j][1]=-1;
}else{
nearest[i][j][1]=s.top();
}
s.push(j);
}
}
for(j=0;j<m;j++){//down
while(!s.empty())s.pop();
for(i=n-1;i>=0;i--){
while(!s.empty() && a[s.top()][j]<a[i][j]){
s.pop();
}
if(s.empty()){
nearest[i][j][2]=n;
}else{
nearest[i][j][2]=s.top();
}
s.push(i);
}
}
for(j=0;j<m;j++){//up
while(!s.empty())s.pop();
for(i=0;i<n;i++){
while(!s.empty() && a[s.top()][j]<a[i][j]){
s.pop();
}
if(s.empty()){
nearest[i][j][3]=-1;
}else{
nearest[i][j][3]=s.top();
}
s.push(i);
}
}
/*
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cout<<nearest[i][j][0]<<" ";
}cout<<endl;
}cout<<endl;*/
for(i=1;i<n-1;i++){
for(j=1;j<m-1;j++){
for(ii=i;ii<n-1;ii++){
for(jj=j;jj<m-1;jj++){
ok=true;
for(A=i;A<=ii;A++){//verificar esta
if(nearest[A][j-1][0]<=jj || nearest[A][jj+1][1]>=j ){
ok=false;
break;
}
}
if(!ok)continue;
for(B=j;B<=jj;B++){//verificar esta
if(nearest[i-1][B][2]<=ii || nearest[ii+1][B][3]>=i){
ok=false;
break;
}
}
if(ok)ans++;
}
}
}
}
/*
6 5
4 8 7 5 6
7 4 10 3 5
9 7 20 14 2
9 14 7 3 6
5 7 5 2 7
4 5 13 5 6
*/
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
2 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
292 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
204 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
19 |
Correct |
1 ms |
204 KB |
Output is correct |
20 |
Correct |
1 ms |
204 KB |
Output is correct |
21 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
2 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
292 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
1 ms |
204 KB |
Output is correct |
18 |
Correct |
1 ms |
204 KB |
Output is correct |
19 |
Correct |
1 ms |
204 KB |
Output is correct |
20 |
Correct |
1 ms |
204 KB |
Output is correct |
21 |
Correct |
1 ms |
204 KB |
Output is correct |
22 |
Correct |
45 ms |
332 KB |
Output is correct |
23 |
Correct |
53 ms |
476 KB |
Output is correct |
24 |
Correct |
56 ms |
428 KB |
Output is correct |
25 |
Correct |
24 ms |
460 KB |
Output is correct |
26 |
Correct |
25 ms |
460 KB |
Output is correct |
27 |
Correct |
25 ms |
460 KB |
Output is correct |
28 |
Correct |
26 ms |
460 KB |
Output is correct |
29 |
Correct |
8 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
2 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
292 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
45 ms |
332 KB |
Output is correct |
18 |
Correct |
53 ms |
476 KB |
Output is correct |
19 |
Correct |
56 ms |
428 KB |
Output is correct |
20 |
Correct |
24 ms |
460 KB |
Output is correct |
21 |
Correct |
25 ms |
460 KB |
Output is correct |
22 |
Correct |
25 ms |
460 KB |
Output is correct |
23 |
Correct |
26 ms |
460 KB |
Output is correct |
24 |
Correct |
8 ms |
332 KB |
Output is correct |
25 |
Correct |
1 ms |
204 KB |
Output is correct |
26 |
Correct |
1 ms |
204 KB |
Output is correct |
27 |
Correct |
1 ms |
204 KB |
Output is correct |
28 |
Correct |
1 ms |
204 KB |
Output is correct |
29 |
Correct |
1 ms |
204 KB |
Output is correct |
30 |
Correct |
1762 ms |
1452 KB |
Output is correct |
31 |
Correct |
1653 ms |
1444 KB |
Output is correct |
32 |
Correct |
1735 ms |
1528 KB |
Output is correct |
33 |
Correct |
917 ms |
1348 KB |
Output is correct |
34 |
Correct |
954 ms |
1356 KB |
Output is correct |
35 |
Correct |
900 ms |
1528 KB |
Output is correct |
36 |
Correct |
936 ms |
1500 KB |
Output is correct |
37 |
Correct |
938 ms |
1516 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
2 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
292 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
45 ms |
332 KB |
Output is correct |
18 |
Correct |
53 ms |
476 KB |
Output is correct |
19 |
Correct |
56 ms |
428 KB |
Output is correct |
20 |
Correct |
24 ms |
460 KB |
Output is correct |
21 |
Correct |
25 ms |
460 KB |
Output is correct |
22 |
Correct |
25 ms |
460 KB |
Output is correct |
23 |
Correct |
26 ms |
460 KB |
Output is correct |
24 |
Correct |
8 ms |
332 KB |
Output is correct |
25 |
Correct |
1762 ms |
1452 KB |
Output is correct |
26 |
Correct |
1653 ms |
1444 KB |
Output is correct |
27 |
Correct |
1735 ms |
1528 KB |
Output is correct |
28 |
Correct |
917 ms |
1348 KB |
Output is correct |
29 |
Correct |
954 ms |
1356 KB |
Output is correct |
30 |
Correct |
900 ms |
1528 KB |
Output is correct |
31 |
Correct |
936 ms |
1500 KB |
Output is correct |
32 |
Correct |
938 ms |
1516 KB |
Output is correct |
33 |
Correct |
1 ms |
204 KB |
Output is correct |
34 |
Correct |
1 ms |
204 KB |
Output is correct |
35 |
Correct |
1 ms |
204 KB |
Output is correct |
36 |
Correct |
1 ms |
204 KB |
Output is correct |
37 |
Correct |
1 ms |
204 KB |
Output is correct |
38 |
Execution timed out |
5049 ms |
14960 KB |
Time limit exceeded |
39 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
460 KB |
Output is correct |
2 |
Correct |
13 ms |
460 KB |
Output is correct |
3 |
Correct |
8 ms |
424 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
8 ms |
460 KB |
Output is correct |
6 |
Correct |
9 ms |
568 KB |
Output is correct |
7 |
Correct |
8 ms |
572 KB |
Output is correct |
8 |
Correct |
9 ms |
552 KB |
Output is correct |
9 |
Correct |
10 ms |
460 KB |
Output is correct |
10 |
Correct |
1 ms |
332 KB |
Output is correct |
11 |
Correct |
2 ms |
460 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
1 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Execution timed out |
5049 ms |
67600 KB |
Time limit exceeded |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
2 ms |
204 KB |
Output is correct |
3 |
Correct |
2 ms |
348 KB |
Output is correct |
4 |
Correct |
2 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
292 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
11 |
Correct |
1 ms |
204 KB |
Output is correct |
12 |
Correct |
1 ms |
204 KB |
Output is correct |
13 |
Correct |
1 ms |
204 KB |
Output is correct |
14 |
Correct |
1 ms |
204 KB |
Output is correct |
15 |
Correct |
1 ms |
204 KB |
Output is correct |
16 |
Correct |
1 ms |
204 KB |
Output is correct |
17 |
Correct |
45 ms |
332 KB |
Output is correct |
18 |
Correct |
53 ms |
476 KB |
Output is correct |
19 |
Correct |
56 ms |
428 KB |
Output is correct |
20 |
Correct |
24 ms |
460 KB |
Output is correct |
21 |
Correct |
25 ms |
460 KB |
Output is correct |
22 |
Correct |
25 ms |
460 KB |
Output is correct |
23 |
Correct |
26 ms |
460 KB |
Output is correct |
24 |
Correct |
8 ms |
332 KB |
Output is correct |
25 |
Correct |
1762 ms |
1452 KB |
Output is correct |
26 |
Correct |
1653 ms |
1444 KB |
Output is correct |
27 |
Correct |
1735 ms |
1528 KB |
Output is correct |
28 |
Correct |
917 ms |
1348 KB |
Output is correct |
29 |
Correct |
954 ms |
1356 KB |
Output is correct |
30 |
Correct |
900 ms |
1528 KB |
Output is correct |
31 |
Correct |
936 ms |
1500 KB |
Output is correct |
32 |
Correct |
938 ms |
1516 KB |
Output is correct |
33 |
Execution timed out |
5049 ms |
14960 KB |
Time limit exceeded |
34 |
Halted |
0 ms |
0 KB |
- |