답안 #527597

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
527597 2022-02-17T18:03:49 Z SlavicG Bitaro the Brave (JOI19_ho_t1) C++17
0 / 100
0 ms 332 KB
#include "bits/stdc++.h"
using namespace std;
 
#define ll long long
 
#define       forn(i,n)              for(int i=0;i<n;i++)
#define          all(v)              v.begin(), v.end()
#define         rall(v)              v.rbegin(),v.rend()
 
#define            pb                push_back
#define          sz(a)               (int)a.size()

const int N = 3005;
char c[N][N];
ll a[N][N], b[N][N];
void solve() { 
    int n, m;
    cin >> n >> m;
    for(int i = 0;i < n; ++i) {
        for(int j = 0;j < m; ++j) {
            cin >> c[i][j];
        }
    }

    for(int i = 0;i < n; ++i) {
        for(int j = m - 1; j >= 0; --j) {
            a[i][j] = a[i][j + 1] + (c[i][j] == 'O');
        }
    }

    for(int i = 0;i < m; ++i) {
        for(int j = n - 1;j >= 0; --j) {
            b[i][j] = b[i][j + 1] + (c[j][i] == 'I');
        }
    }

    ll ans = 0;

    for(int i = 0;i < n; ++i) {
        for(int j = 0;j < m; ++j) {
            if(c[i][j] != 'J')
                ans += a[i][j + 1] * b[j][i + 1]; 
        }
    } 
    cout << ans << "\n";
} 
 
int32_t main() {
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    //cin >> t;
    while(t--) {
        solve();
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Incorrect 0 ms 332 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Incorrect 0 ms 332 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Incorrect 0 ms 332 KB Output isn't correct
3 Halted 0 ms 0 KB -