제출 #1185214

#제출 시각아이디문제언어결과실행 시간메모리
1185214ivazivaBitaro the Brave (JOI19_ho_t1)C++20
100 / 100
319 ms79828 KiB
#include <bits/stdc++.h>

using namespace std;

#define MAXN 3002

int w,h;
char a[MAXN][MAXN];
int suff[2][MAXN][MAXN];///0-broji suff u vrsti,1-broji suff u koloni

int main()
{
    cin>>h>>w;
    for (int i=1;i<=h;i++)
    {
        string s;cin>>s;
        for (int j=1;j<=w;j++) a[i][j]=s[j-1];
    }
    for (int vrsta=1;vrsta<=h;vrsta++)
    {
        suff[0][vrsta][w+1]=0;
        for (int kolona=w;kolona>=1;kolona--)
        {
            suff[0][vrsta][kolona]=suff[0][vrsta][kolona+1];
            if (a[vrsta][kolona]=='O') suff[0][vrsta][kolona]++;
        }
    }
    for (int kolona=1;kolona<=w;kolona++)
    {
        suff[1][h+1][kolona]=0;
        for (int vrsta=h;vrsta>=1;vrsta--)
        {
            suff[1][vrsta][kolona]=suff[1][vrsta+1][kolona];
            if (a[vrsta][kolona]=='I') suff[1][vrsta][kolona]++;
        }
    }
    long long ans=0;
    for (int i=1;i<=h;i++)
    {
        for (int j=1;j<=w;j++)
        {
            if (a[i][j]=='J') ans+=(long long)(suff[0][i][j]*suff[1][i][j]);
        }
    }
    cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...