제출 #151678

#제출 시각아이디문제언어결과실행 시간메모리
151678phillipStrah (COCI18_strah)C++14
66 / 110
1076 ms71096 KiB
#include <bits/stdc++.h>

using namespace std;
int n,m;
long double l[2009][2009];
char gr[2009][2009];
long long ans;
int main()
{
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>gr[i];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=m-1;j>=0;j--)
        {
            if(gr[i][j]=='#')continue;
            l[i][j]=1+l[i][j+1];
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(l[i][j]==0)continue;
            long double mn=l[i][j];
            for(int k=i;k<n;k++)
            {
                mn=min(mn,l[k][j]);
                if(mn==0)break;
                long double r=(k-i+1);
                //if(r==1)ans+=(mn*(mn+1))/2;
                 ans+=(((mn*r)+r)/2.0)*mn;
            }
     //       cout<<i<<" "<<j<<"-> "<<ans<<"\n";
        }
    }
    cout<<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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...