#include <bits/stdc++.h> using namespace std; typedef pair<int,int> pii; void makeMove(pii &p, pii g) { if (p.first < g.first) ++p.first; else if (p.first > g.first) --p.first; if (p.second < g.second) ++p.second; else if (p.second > g.second) --p.second; } long long solve(vector<pii> v, int k) { for (int i=0; i<v.size(); ++i) if (i != k) for (int j=0; j<v.size(); ++j) if (j != k) makeMove(v[j], v[i]); long long res = 0; for (int i=0; i<v.size(); ++i) res += 1LL * v[i].first * v[i].second; return res; } int main() { int n; scanf("%d", &n); vector<pii> v(n); for (int i=0; i<n; ++i) scanf("%d%d", &v[i].first, &v[i].second); for (int i=0; i<n; ++i) printf("%lld\n", solve(v, i)); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <bits/stdc++.h> using namespace std; typedef pair<int,int> pii; void makeMove(pii &p, pii g) { if (p.first < g.first) ++p.first; else if (p.first > g.first) --p.first; if (p.second < g.second) ++p.second; else if (p.second > g.second) --p.second; } long long solve(vector<pii> v, int k) { for (int i=0; i<v.size(); ++i) if (i != k) for (int j=0; j<v.size(); ++j) if (j != k) makeMove(v[j], v[i]); long long res = 0; for (int i=0; i<v.size(); ++i) res += 1LL * v[i].first * v[i].second; return res; } int main() { int n; scanf("%d", &n); vector<pii> v(n); for (int i=0; i<n; ++i) scanf("%d%d", &v[i].first, &v[i].second); for (int i=0; i<n; ++i) printf("%lld\n", solve(v, i)); return 0; } |