Submission

Status:

----xxxxxx

Subtask/Task Score:

0/100

Score: 0

User: kittipos

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

Language: cpp

Time: 0.029 second

Submitted On: 2026-03-05 00:19:04

#include <iostream>
#include <vector>

using namespace std;

vector<vector<int>> table;

vector<pair<int, int>> dp;

int n;
pair<int, int> ring(int i) {
  if (i == 0) {
    return make_pair(1, n);
  }
  if (dp[i].first != -1) {
    return dp[i];
  }

  pair<int, int> old = ring(i - 1);
  int start = old.second + 1;
  int end = start + (n - i -1) + (n - i-1);
  pair<int, int> res = make_pair(start, end);
  dp[i] = res;
//   cout << "ring " << i << " (" << res.first << ", " << res.second << ")"
//        << endl;
  return res;
}

int main() {
  cin >> n;

  table.assign(n, vector<int>(n, -1));
  dp.assign(n, make_pair(-1, -1));

  int sum = 0;
  for (int i = 1; i < n - 2; i++) {
    if (i % 2 == 1) {
      sum += ring(i).second % 10;
    } else {
      sum += ring(i).first % 10;
    }
  }

  sum += n % 10 + (n - 1) % 10;
  cout << sum;

  return 0;
}