Submission
Status:
PPPPxxxxxx
Subtask/Task Score:
40/100
Score: 40
User: kittipos
Problemset: โชว์ของโลมา
Language: cpp
Time: 0.028 second
Submitted On: 2026-03-05 00:26:49
#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) + (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*n)-1) % 10;
sum += (n*n) % 10;
cout << sum;
return 0;
}