Submission

Status:

PPPPxxxxxx

Subtask/Task Score:

40/100

Score: 40

User: cyblox_boi

Problemset: โชว์ของโลมา

Language: cpp

Time: 0.029 second

Submitted On: 2026-03-14 19:46:49

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long n;
    cin >> n;

    vector<vector<long long>> dolphins(n, vector<long long>(n, -1));

    long long current = 1;
    pair<long long, long long> currentPosition = {0, 0};
    long long maxNumber = n * n;
    long long push = 0;

    while (current <= maxNumber)
    {
        for (long long i = push; i < n && current <= maxNumber; i++, current++, currentPosition.second++)
        {
            dolphins[currentPosition.first][currentPosition.second] = current;
        }

        currentPosition.second--;
        currentPosition.first++;
        push++;

        for (long long i = 0; i < n && current <= maxNumber && dolphins[currentPosition.first][currentPosition.second] == -1; i++, current++, currentPosition.second--)
        {
            dolphins[currentPosition.first][currentPosition.second] = current;
        }

        currentPosition.second++;
        currentPosition.first++;
        push++;

        for (long long i = push; i < n && current <= maxNumber && dolphins[currentPosition.first][currentPosition.second] == -1; i++, current++, currentPosition.first++)
        {
            dolphins[currentPosition.first][currentPosition.second] = current;
        }

        currentPosition.second++;
        currentPosition.first--;

        for (long long i = push; i < n && current <= maxNumber && dolphins[currentPosition.first][currentPosition.second] == -1; i++, current++, currentPosition.first--)
        {
            dolphins[currentPosition.first][currentPosition.second] = current;
        }

        currentPosition.second++;
        currentPosition.first++;
    }

    long long total = 0;

    for (long long i = 0; i < n; i++)
    {
        total += to_string(dolphins[n - 1][i]).back() - '0';
    }

    cout << total << '\n';

    return 0;
}