Submission

Status:

PPPPxxxxxx

Subtask/Task Score:

40/100

Score: 40

User: cyblox_boi

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

Language: cpp

Time: 0.031 second

Submitted On: 2026-03-14 19:45:22

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

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

    int n;
    cin >> n;

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

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

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

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

        for (int 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 (int 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 (int 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++;
    }

    int total = 0;

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

    cout << total << '\n';

    return 0;
}