Submission #47929979


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/modint>

namespace {
using ModInt [[maybe_unused]] = atcoder::modint998244353;
using Num [[maybe_unused]] = long long int;
using Vec [[maybe_unused]] = std::vector<Num>;
using Set [[maybe_unused]] = std::set<Num>;
using Mset [[maybe_unused]] = std::multiset<Num>;
using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;

template<typename T>
using Q [[maybe_unused]] = std::queue<T>;

template<typename T>
using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
}

bool grid[2009][2009];

Num to_index(Num y, Num x) {
    return y * 2009 + x;
}

void solve(std::istream& is, std::ostream& os) {
    Num n {0};
    is >> n;

    std::vector<Num> rows(n, 0);
    std::vector<Num> cols(n, 0);
    for(Num y{0}; y<n; ++y) {
        std::string s;
        is >> s;
        for(Num x{0}; x<n; ++x) {
            if (s.at(x) == 'o') {
                rows.at(y) += 1;
                cols.at(x) += 1;
                grid[y][x] = true;
            }
        }
    }

    Num ans {0};
    for(Num y{0}; y<n; ++y) {
        for(Num x{0}; x<n; ++x) {
            const auto r = rows.at(y);
            const auto c = cols.at(x);
            if (grid[y][x]) {
                if ((r >= 2) && (c >= 2)) {
                    ans += (r - 1) * (c - 1);
                }
            }
        }
    }

    os << ans << "\n";
}

int main(void) {
    solve(std::cin, std::cout);
    return 0;
}

Submission Info

Submission Time
Task D - Counting Ls
User zettsut
Language C++ 20 (gcc 12.2)
Score 400
Code Size 1519 Byte
Status AC
Exec Time 80 ms
Memory 7532 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 18
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 3496 KiB
sample_02.txt AC 1 ms 3448 KiB
sample_03.txt AC 1 ms 3488 KiB
test_01.txt AC 1 ms 3436 KiB
test_02.txt AC 1 ms 3484 KiB
test_03.txt AC 1 ms 3464 KiB
test_04.txt AC 48 ms 3452 KiB
test_05.txt AC 54 ms 7336 KiB
test_06.txt AC 57 ms 7532 KiB
test_07.txt AC 71 ms 7432 KiB
test_08.txt AC 76 ms 7460 KiB
test_09.txt AC 54 ms 7480 KiB
test_10.txt AC 69 ms 7496 KiB
test_11.txt AC 60 ms 7460 KiB
test_12.txt AC 79 ms 7452 KiB
test_13.txt AC 76 ms 7460 KiB
test_14.txt AC 80 ms 7396 KiB
test_15.txt AC 54 ms 7432 KiB