# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
207666 |
2020-03-08T12:06:44 Z |
Sho10 |
Rectangles (IOI19_rect) |
C++14 |
|
5000 ms |
443896 KB |
/*
ID: Sho10
LANG: C++
*/
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long int
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define sz size
#define f first
#define s second
#define pb push_back
#define er erase
#define in insert
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll a[2505][2505];
ll count_rectangles(vector<vector<int> >A){
ll n=A.size();
ll m=A[0].size();
ll ans=0;
ll s1=-1;
for(ll i=0;i<n;i++)
for(ll j=0;j<m;j++){
a[i][j]=A[i][j];
if(a[i][j]>=2){
s1=1;
}
}
if(s1==1){
for(ll i=1;i<n-1;i++)
for(ll j=1;j<m-1;j++)
{
for(ll c=i;c<n-1;c++)
for(ll k=j;k<m-1;k++){
for(ll ii=i;ii<=c;ii++)
for(ll jj=j;jj<=k;jj++)
{
if(a[ii][jj]<a[ii][j-1]&&a[ii][jj]<a[i-1][jj]&&a[ii][jj]<a[c+1][jj]&&a[ii][jj]<a[ii][k+1]){
continue;
}else goto Next;
}
ans++;
Next:ans=ans+0;
}
}
}else {
for(ll i=0;i<n;i++)
for(ll j=0;j<m;j++)
a[i+1][j+1]=A[i][j];
ll s[2505][2505];
for(ll i=1;i<=n;i++)
for(ll j=1;j<=m;j++)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
ll l[2505][2505][3];
ll r[2505][2505][3];
for(ll i=n;i>=1;i--)
for(ll j=m;j>=1;j--)
{
ll x=a[i][j];
l[i][j][x]=l[i+1][j][x]+1;
r[i][j][x]=r[i][j+1][x]+1;
}
for(ll i=2;i<n;i++)
for(ll j=2;j<m;j++)
{
if(a[i][j]==1)continue;
ll x,y;
x=i+l[i][j][0]-1;
y=j+r[i][j][0]-1;
ll val=s[x][y]+s[i-1][j-1]-s[x][j-1]-s[i-1][y];
if(val!=0){
continue;
}
if(l[i][j-1][1]<l[i][j][0]) continue;
if(r[i-1][j][1]<r[i][j][0]) continue;
if(l[i][y+1][1]<l[i][j][0]) continue;
if(r[x+1][j][1]<r[i][j][0]) continue;
ans++;
}
}
return ans;
}
/*
int32_t main(){
CODE_START;
cout<<count_rectangles({{1, 1, 1, 1, 1},{0, 0, 0, 0, 0},{1, 0, 1, 1, 1},{1, 1, 1, 1, 1},{1, 1, 1, 1, 1},{1, 1, 1, 1, 1}});
}
*/
Compilation message
rect.cpp: In function 'long long int count_rectangles(std::vector<std::vector<int> >)':
rect.cpp:30:1: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
for(ll i=0;i<n;i++)
^~~
rect.cpp:37:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
if(s1==1){
^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
504 KB |
Output is correct |
3 |
Correct |
9 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
5 ms |
888 KB |
Output is correct |
6 |
Correct |
6 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
504 KB |
Output is correct |
12 |
Correct |
5 ms |
504 KB |
Output is correct |
13 |
Correct |
5 ms |
376 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
5 ms |
504 KB |
Output is correct |
16 |
Correct |
5 ms |
376 KB |
Output is correct |
17 |
Correct |
5 ms |
504 KB |
Output is correct |
18 |
Correct |
5 ms |
376 KB |
Output is correct |
19 |
Correct |
5 ms |
888 KB |
Output is correct |
20 |
Correct |
5 ms |
888 KB |
Output is correct |
21 |
Correct |
5 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
504 KB |
Output is correct |
3 |
Correct |
9 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
5 ms |
888 KB |
Output is correct |
6 |
Correct |
6 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
504 KB |
Output is correct |
12 |
Correct |
5 ms |
504 KB |
Output is correct |
13 |
Correct |
5 ms |
376 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
5 ms |
504 KB |
Output is correct |
16 |
Correct |
5 ms |
376 KB |
Output is correct |
17 |
Correct |
32 ms |
760 KB |
Output is correct |
18 |
Correct |
32 ms |
888 KB |
Output is correct |
19 |
Correct |
32 ms |
760 KB |
Output is correct |
20 |
Correct |
20 ms |
760 KB |
Output is correct |
21 |
Correct |
25 ms |
760 KB |
Output is correct |
22 |
Correct |
25 ms |
760 KB |
Output is correct |
23 |
Correct |
25 ms |
888 KB |
Output is correct |
24 |
Correct |
10 ms |
764 KB |
Output is correct |
25 |
Correct |
5 ms |
504 KB |
Output is correct |
26 |
Correct |
5 ms |
376 KB |
Output is correct |
27 |
Correct |
5 ms |
888 KB |
Output is correct |
28 |
Correct |
5 ms |
888 KB |
Output is correct |
29 |
Correct |
5 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
504 KB |
Output is correct |
3 |
Correct |
9 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
5 ms |
888 KB |
Output is correct |
6 |
Correct |
6 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
504 KB |
Output is correct |
12 |
Correct |
5 ms |
504 KB |
Output is correct |
13 |
Correct |
5 ms |
376 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
5 ms |
504 KB |
Output is correct |
16 |
Correct |
5 ms |
376 KB |
Output is correct |
17 |
Correct |
32 ms |
760 KB |
Output is correct |
18 |
Correct |
32 ms |
888 KB |
Output is correct |
19 |
Correct |
32 ms |
760 KB |
Output is correct |
20 |
Correct |
20 ms |
760 KB |
Output is correct |
21 |
Correct |
25 ms |
760 KB |
Output is correct |
22 |
Correct |
25 ms |
760 KB |
Output is correct |
23 |
Correct |
25 ms |
888 KB |
Output is correct |
24 |
Correct |
10 ms |
764 KB |
Output is correct |
25 |
Correct |
1014 ms |
1916 KB |
Output is correct |
26 |
Correct |
990 ms |
1912 KB |
Output is correct |
27 |
Correct |
992 ms |
1912 KB |
Output is correct |
28 |
Correct |
587 ms |
1912 KB |
Output is correct |
29 |
Correct |
704 ms |
1912 KB |
Output is correct |
30 |
Correct |
722 ms |
1912 KB |
Output is correct |
31 |
Correct |
696 ms |
1912 KB |
Output is correct |
32 |
Correct |
696 ms |
1956 KB |
Output is correct |
33 |
Correct |
5 ms |
504 KB |
Output is correct |
34 |
Correct |
5 ms |
376 KB |
Output is correct |
35 |
Correct |
5 ms |
888 KB |
Output is correct |
36 |
Correct |
5 ms |
888 KB |
Output is correct |
37 |
Correct |
5 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
504 KB |
Output is correct |
3 |
Correct |
9 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
5 ms |
888 KB |
Output is correct |
6 |
Correct |
6 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
504 KB |
Output is correct |
12 |
Correct |
5 ms |
504 KB |
Output is correct |
13 |
Correct |
5 ms |
376 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
5 ms |
504 KB |
Output is correct |
16 |
Correct |
5 ms |
376 KB |
Output is correct |
17 |
Correct |
32 ms |
760 KB |
Output is correct |
18 |
Correct |
32 ms |
888 KB |
Output is correct |
19 |
Correct |
32 ms |
760 KB |
Output is correct |
20 |
Correct |
20 ms |
760 KB |
Output is correct |
21 |
Correct |
25 ms |
760 KB |
Output is correct |
22 |
Correct |
25 ms |
760 KB |
Output is correct |
23 |
Correct |
25 ms |
888 KB |
Output is correct |
24 |
Correct |
10 ms |
764 KB |
Output is correct |
25 |
Correct |
1014 ms |
1916 KB |
Output is correct |
26 |
Correct |
990 ms |
1912 KB |
Output is correct |
27 |
Correct |
992 ms |
1912 KB |
Output is correct |
28 |
Correct |
587 ms |
1912 KB |
Output is correct |
29 |
Correct |
704 ms |
1912 KB |
Output is correct |
30 |
Correct |
722 ms |
1912 KB |
Output is correct |
31 |
Correct |
696 ms |
1912 KB |
Output is correct |
32 |
Correct |
696 ms |
1956 KB |
Output is correct |
33 |
Execution timed out |
5100 ms |
11128 KB |
Time limit exceeded |
34 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
504 KB |
Output is correct |
2 |
Correct |
11 ms |
504 KB |
Output is correct |
3 |
Correct |
5 ms |
888 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
12 ms |
504 KB |
Output is correct |
6 |
Correct |
12 ms |
504 KB |
Output is correct |
7 |
Correct |
12 ms |
504 KB |
Output is correct |
8 |
Correct |
12 ms |
504 KB |
Output is correct |
9 |
Correct |
11 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
504 KB |
Output is correct |
2 |
Correct |
202 ms |
215928 KB |
Output is correct |
3 |
Correct |
430 ms |
441336 KB |
Output is correct |
4 |
Correct |
384 ms |
443768 KB |
Output is correct |
5 |
Correct |
389 ms |
443888 KB |
Output is correct |
6 |
Correct |
183 ms |
220536 KB |
Output is correct |
7 |
Correct |
355 ms |
441080 KB |
Output is correct |
8 |
Correct |
349 ms |
443896 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
11 |
Correct |
5 ms |
888 KB |
Output is correct |
12 |
Correct |
5 ms |
888 KB |
Output is correct |
13 |
Correct |
5 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
504 KB |
Output is correct |
3 |
Correct |
9 ms |
504 KB |
Output is correct |
4 |
Correct |
5 ms |
504 KB |
Output is correct |
5 |
Correct |
5 ms |
888 KB |
Output is correct |
6 |
Correct |
6 ms |
504 KB |
Output is correct |
7 |
Correct |
5 ms |
504 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
504 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
11 |
Correct |
5 ms |
504 KB |
Output is correct |
12 |
Correct |
5 ms |
504 KB |
Output is correct |
13 |
Correct |
5 ms |
376 KB |
Output is correct |
14 |
Correct |
5 ms |
376 KB |
Output is correct |
15 |
Correct |
5 ms |
504 KB |
Output is correct |
16 |
Correct |
5 ms |
376 KB |
Output is correct |
17 |
Correct |
32 ms |
760 KB |
Output is correct |
18 |
Correct |
32 ms |
888 KB |
Output is correct |
19 |
Correct |
32 ms |
760 KB |
Output is correct |
20 |
Correct |
20 ms |
760 KB |
Output is correct |
21 |
Correct |
25 ms |
760 KB |
Output is correct |
22 |
Correct |
25 ms |
760 KB |
Output is correct |
23 |
Correct |
25 ms |
888 KB |
Output is correct |
24 |
Correct |
10 ms |
764 KB |
Output is correct |
25 |
Correct |
1014 ms |
1916 KB |
Output is correct |
26 |
Correct |
990 ms |
1912 KB |
Output is correct |
27 |
Correct |
992 ms |
1912 KB |
Output is correct |
28 |
Correct |
587 ms |
1912 KB |
Output is correct |
29 |
Correct |
704 ms |
1912 KB |
Output is correct |
30 |
Correct |
722 ms |
1912 KB |
Output is correct |
31 |
Correct |
696 ms |
1912 KB |
Output is correct |
32 |
Correct |
696 ms |
1956 KB |
Output is correct |
33 |
Execution timed out |
5100 ms |
11128 KB |
Time limit exceeded |
34 |
Halted |
0 ms |
0 KB |
- |