제출 #297076

#제출 시각아이디문제언어결과실행 시간메모리
297076daniel920712Rectangles (IOI19_rect)C++14
0 / 100
28 ms8832 KiB
#include "rect.h"
#include <stdio.h>

using namespace std;
int can1[205][205][205]={0};
int can2[205][205][205]={0};
long long count_rectangles(vector< vector<int> > all)
{
    int N,M,i,j,k,l,m,big=0,ok;
    long long ans=0;
    N=all.size();
    M=all[0].size();
    for(i=0;i<N;i++)
    {
        for(j=1;j<M;j++)
        {
            big=0;
            for(k=j;k<M-1;k++)
            {
                big=max(big,all[i][k]);
                if(big<all[i][j-1]&&big<all[i][k+1]) can1[i][j][k]=1;
            }
        }
    }

    for(i=0;i<M;i++)
    {
        for(j=1;j<N;j++)
        {
            big=0;
            for(k=j;k<N-1;k++)
            {
                big=max(big,all[k][i]);
                if(big<all[j-1][i]&&big<all[k+1][i]) can2[i][j][k]=1;
            }
        }
    }

    for(i=1;i<N-1;i++)
    {
        for(j=i;j<N-1;j++)
        {
            for(k=1;k<M-1;k++)
            {
                for(l=k;l<M-1;l++)
                {
                    ok=1;
                    for(m=i;m<=j;m++) ok=ok&&can1[i][k][l];
                    for(m=k;m<=l;m++) ok=ok&&can2[l][i][j];
                    if(ok) ans++;
                }
            }
        }
    }

	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...