Submission #943356

#TimeUsernameProblemLanguageResultExecution timeMemory
943356IUA_HasinBitaro the Brave (JOI19_ho_t1)C++17
100 / 100
505 ms274432 KiB
#include <bits/stdc++.h>
 
#define endl                                "\n"
#define finp                                for(int i=0; i<n; i++)
#define fknp                                for(int k=0; k<n; k++)
#define yeap                                cout<<"YES"<<endl
#define nope                                cout<<"NO"<<endl
#define inpintn                             int n; cin>>n
#define inpintarrn                          int arr[n]; for(int i=0; i<n; i++){cin>>arr[i];}
#define inpllarrn                           long long arr[n]; for(int i=0; i<n; i++){cin>>arr[i];}
#define ll                                  long long
 
using namespace std;

int main ()
{   
    ll h, w;
    cin>>h>>w;
    ll brr[h][w];
    vector<pair<ll, ll>> v;
    for(int i=0; i<h; i++){
        string a;
        cin>>a;
        for(int j=0; j<w; j++){
            if(a[j]=='J'){
                brr[i][j] = 1;
                v.push_back({i, j});
            } else if(a[j]=='O'){
                brr[i][j] = 2;
            } else {
                brr[i][j] = 3;
            }
        }
    }

    ll orr[h][w];
    for(int i=0; i<h; i++){
        ll cnto = 0;
        for(int j=w-1; j>=0; j--){
            if(brr[i][j]==2){
                cnto++;
                orr[i][j] = cnto;
            } else {
                orr[i][j] = cnto;
            }
        }
    }

    ll irr[h][w];
    for(int i=0; i<w; i++){
        ll cnti = 0;
        for(int j=h-1; j>=0; j--){
            if(brr[j][i]==3){
                cnti++;
                irr[j][i] = cnti;
            } else {
                irr[j][i] = cnti;
            }
        }
    }

    ll siz = v.size();

    ll ans = 0;
    for(int i=0; i<siz; i++){   
        ll aa = v[i].first;
        ll bb = v[i].second;
        ll cc = (orr[aa][bb])*(irr[aa][bb]);
        ans = ans+cc;
    }
    cout<<ans<<endl;










    // for(int i=0; i<h; i++){
    //     for(int j=0; j<w; j++){
    //         cout << orr[i][j] << " ";
    //     }
    //     cout<<endl;
    // }

    // for(int i=0; i<h; i++){
    //     for(int j=0; j<w; j++){
    //         cout << irr[i][j] << " ";
    //     }
    //     cout<<endl;
    // }




    // ll siz = v.size();

    // for(int i=0; i<siz; i++){

    // }









    // cout<<endl;

    // for(int i=0; i<h; i++){
    //     for(int j=0; j<w; j++){
    //         cout << brr[i][j] << " ";
    //     }
    //     cout<<endl;
    // }
    
 
    return 0;
  
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...