Submission #560315

#TimeUsernameProblemLanguageResultExecution timeMemory
560315AGEStrah (COCI18_strah)C++14
55 / 110
194 ms217320 KiB
#include<bits/stdc++.h>
#define F first
#define S second
#define pb push_back
#define int long long
using namespace std;
const int N=1e5,M=305,mod=1e9+7;
int ok[M][M][M],prefix[M][M],okk[M][M];
string s[M];
main()
{
    int n,m;
    cin>>n>>m;

    for(int i=0;i<n;i++)
        cin>>s[i];

    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){

            int okk=0;
            for(int k=j;k<m;k++){

                if(s[i][k]=='#')
                    okk=1;

                ok[i][j][k]=okk;

            }

        }
    }

    for(int i=0;i<m;i++){
        for(int j=i;j<m;j++){

            int last=n;
            for(int k=n-1;k>=0;k--){

                if(ok[k][i][j]==1)
                    last=k;

                ok[k][i][j]=last;

            }

        }
    }

    int ans=0;

    for(int i=0;i<m;i++)
        for(int j=i;j<m;j++)
            prefix[i][j]=-1;

    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){

            int okk=0;

            for(int k=j;k<m;k++){

                if(s[i][k]=='#')
                    okk=1;

                if(okk==1)
                    prefix[j][k]=i;
            }
        }

        for(int j=0;j<m;j++)
            for(int k=j;k<m;k++)
                ans+=((prefix[j][k]-i)*(i-ok[i][j][k])*(k-j+1));
    }

    cout<<ans<<endl;

    return 0;
}

Compilation message (stderr)

strah.cpp:10:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   10 | main()
      | ^~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...