Submission #1298360

#TimeUsernameProblemLanguageResultExecution timeMemory
1298360david_g611Bitaro the Brave (JOI19_ho_t1)C++20
100 / 100
424 ms150228 KiB
#include <bits/stdc++.h>
#define int long long

using namespace std;

const int NMAX=3001;
int n, m;
char v[NMAX+1][NMAX+1];
int i_jos[NMAX+1][NMAX+1];
int o_dreapta[NMAX+1][NMAX+1];

signed main()
{
    cin>>n>>m;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            cin>>v[i][j];

    for(int i=n; i>=1; i--)
        for(int j=1; j<=m; j++)
        {
            i_jos[i][j]=i_jos[i+1][j];
            if(v[i][j]=='I')++i_jos[i][j];
        }

    for(int i=1; i<=n; i++)
        for(int j=m; j>=1; j--)
        {
            o_dreapta[i][j]=o_dreapta[i][j+1];
            if(v[i][j]=='O')++o_dreapta[i][j];
        }

    int ans=0;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            if(v[i][j]=='J')
                ans+=i_jos[i][j]*o_dreapta[i][j];
    cout<<ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...