Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- bool valid(int r, int c, int n)
- {
- return (1 <= r && 1 <= c && r <= n && c <= n);
- }
- ll solve(int n)
- {
- set <pair <int, int>> s;
- for (int i = 1; i <= n; i++)
- {
- s.insert({1, i});
- s.insert({2, i});
- s.insert({3, i});
- s.insert({n, i});
- s.insert({n - 1, i});
- s.insert({n - 2, i});
- s.insert({n - 3, i});
- }
- set <pair <int, int>> s2;
- for (auto &it : s)
- {
- s2.insert({it.first, it.second});
- s2.insert({it.second, it.first});
- }
- s = s2;
- ll res = 0LL;
- for (auto &it : s)
- {
- int r = it.first, c = it.second;
- if (valid(r, c, n) == 0) continue;
- int good = n * n - 1;
- for (int dx = -2; dx <= 2; dx++)
- {
- for (int dy = -2; dy <= 2; dy++)
- {
- if (abs(dx) + abs(dy) != 3) continue;
- int rn = r + dx;
- int cn = c + dy;
- good -= valid(rn, cn, n);
- }
- }
- res += good;
- }
- ll total = n * (ll) n, lft = total - (ll) s.size();
- if (lft >= 0)
- {
- res += lft * (total - 9);
- }
- return res / 2;
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0); cout.tie(0);
- int n;
- cin >> n;
- for (int i = 1; i <= n; i++)
- {
- cout << solve(i) << "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement