Submission #233934

#TimeUsernameProblemLanguageResultExecution timeMemory
233934nicolaalexandraBitaro the Brave (JOI19_ho_t1)C++14
100 / 100
712 ms88824 KiB
#include <bits/stdc++.h>
#define DIM 3010
using namespace std;
char a[DIM][DIM];
int dp_right[DIM][DIM],dp_up[DIM][DIM];
int n,m,i,j;
int main (){

    //ifstream cin ("date.in");
    //ofstream cout ("date.out");

    cin>>n>>m;
    for (i=1;i<=n;i++)
        cin>>a[i]+1;


    for (i=1;i<=n;i++){
        for (j=m;j;j--){
            dp_right[i][j] = dp_right[i][j+1];
            if (a[i][j] == 'O')
                dp_right[i][j]++;
        }
    }

    for (j=1;j<=m;j++){
        for (i=n;i;i--){
            dp_up[i][j] = dp_up[i+1][j];
            if (a[i][j] == 'I')
                dp_up[i][j]++;
        }
    }


    long long sol = 0;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            if (a[i][j] == 'J')
                sol += 1LL * dp_right[i][j] * dp_up[i][j];
    cout<<sol;

    return 0;
}

Compilation message (stderr)

joi2019_ho_t1.cpp: In function 'int main()':
joi2019_ho_t1.cpp:14:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         cin>>a[i]+1;
              ~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...