제출 #1340107

#제출 시각아이디문제언어결과실행 시간메모리
1340107bshaliRima (COCI25_rima)C++20
50 / 50
1 ms348 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define ld long double
#define all(x) begin(x), end(x)
#define inf (int)3e18
#define ff first
#define ss second
#define mem(x, y) fill(begin(x), end(x), y)
using vi = vector<int>;
using vii = vector<pair<int, int>>;
using vvi = vector<vector<int>>;
using pii = pair<int, int>;

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

const int MAX = 2e5 + 5, MOD = 1e9 + 7;

int n, m, k, ans1 = 0, ans2 = 0, ans3 = 0;
vector<string> vt;

void solve()
{
    cin >> n >> m >> k;
    int cnt = 0;
    for (int i = 1; i <= n * m; i++)
    {
        string x;
        cin >> x;
        cnt++;

        if (cnt == m)
        {
            vt.push_back(x);
            cnt = 0;
        }
    }

    // for (auto i : vt)
    //     cout << i << ' ';
    // cout << endl;

    for (int i = 3; i < vt.size(); i += 4)
    {
        string l1, l2, l3, l4;
        string t = vt[i - 3];

        reverse(all(t));
        if (t.size() < k)
            continue;

        for (int j = 0; j < k; j++)
            l1 += t[j];

        t = vt[i - 2];

        reverse(all(t));
        if (t.size() < k)
            continue;

        for (int j = 0; j < k; j++)
            l2 += t[j];

        t = vt[i - 1];

        reverse(all(t));
        if (t.size() < k)
            continue;

        for (int j = 0; j < k; j++)
            l3 += t[j];

        t = vt[i];

        reverse(all(t));
        if (t.size() < k)
            continue;

        for (int j = 0; j < k; j++)
            l4 += t[j];

        // cout << l1 << ' ' << l2 << ' ' << l3 << ' ' << l4 << endl;

        if (l1 == l2 && l3 == l4)
            ans1++;
        if (l1 == l3 && l2 == l4)
            ans2++;
        if (l1 == l4 && l2 == l3)
            ans3++;
    }

    cout << ans1 << ' ' << ans2 << ' ' << ans3;
}

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int tt = 1;
    // cin >> tt;
    while (tt--)
        solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...