Submission #1093661

#TimeUsernameProblemLanguageResultExecution timeMemory
1093661lamagrilBitaro the Brave (JOI19_ho_t1)C++14
20 / 100
1078 ms3676 KiB
#include <bits/stdc++.h>

using namespace std;

const int nx=3005;

char mp[nx][nx];

int main(){
    cin.tie(NULL)->sync_with_stdio(false);
    int n,m; cin >> n >> m;
    for(int i=1 ; i<=n ; i++){
        string s; cin >> s;
        for(int j=1 ; j<=m ; j++){
            mp[i][j]=s[j-1];
        }
    }
    vector<int> aj[nx],ao[nx],ai[nx];
    for(int i=1 ; i<=n ; i++){
        for(int j=1 ; j<=m ; j++){
            if(mp[i][j]=='J'){
                aj[i].push_back(j);
            }
            else if(mp[i][j]=='O'){
                ao[j].push_back(i);
            }
            else if(mp[i][j]=='I'){
                ai[j].push_back(i);
            }
        }
    }
    int ans=0;
    /*cout << "adj J" << '\n';
    for(int i=1 ; i<=n ; i++){
        cout << "i= " << i << "   ";
        for(int j:aj[i]){
            cout << j << ' ';
        }
        cout << '\n';
    }
    cout << "adj O" << '\n';
    for(int i=1 ; i<=m ; i++){
        cout << "i= " << i << "   ";
        for(int j:ao[i]){
            cout << j << ' ';
        }
        cout << '\n';
    }
    cout << "adj I" << '\n';
    for(int i=1 ; i<=m ; i++){
        cout << "i= " << i << "   ";
        for(int j:ai[i]){
            cout << j << ' ';
        }
        cout << '\n';
    }*/
    for(int u1=1 ; u1<=m ; u1++)/*loop l*/{
        for(int v1:ao[u1])/*loop i*/{
            for(int v2:aj[v1])/*loop j*/{
                if(v2>=u1) continue;
                for(int v3:ai[v2])/*loop k*/{
                    if(v3<=v1) continue;
                    ans++;
                }
            }
        }
    }
    cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...