# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
98559 | polyfish | Topovi (COCI15_topovi) | C++14 | 1724 ms | 46072 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//Pantyhose(black) + glasses = infinity
#include <bits/stdc++.h>
using namespace std;
#define debug(x) cerr << #x << " = " << x << '\n';
#define BP() cerr << "OK!\n";
#define PR(A, n) {cerr << #A << " = "; for (int64_t _=1; _<=n; ++_) cerr << A[_] << ' '; cerr << '\n';}
#define PR0(A, n) {cerr << #A << " = "; for (int64_t _=0; _<n; ++_) cerr << A[_] << ' '; cerr << '\n';}
#define FILE_NAME "data"
map<int64_t, int64_t> r, c, row, col;
map<pair<int64_t, int64_t>, int64_t> mp;
int64_t updRow(int64_t idx, int64_t v) {
int64_t res = -col[r[idx]];
--row[r[idx]];
r[idx] ^= v;
res += col[r[idx]];
++row[r[idx]];
return res;
}
int64_t updCol(int64_t idx, int64_t v) {
int64_t res = -row[c[idx]];
--col[c[idx]];
c[idx] ^= v;
// debug(c[idx]);
res += row[c[idx]];
++col[c[idx]];
return res;
}
void solve() {
int64_t n;
int64_t k, nQueries;
cin >> n >> k >> nQueries;
row[0] = col[0] = n;
int64_t res = n * n;
for (int64_t i=1; i<=k; ++i) {
int64_t x, y;
cin >> x >> y;
cin >> mp[{x, y}];
res += updRow(x, mp[{x, y}]);
res += updCol(y, mp[{x, y}]);
}
while (nQueries--) {
int64_t x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
mp[{x2, y2}] = mp[{x1, y1}];
res += updRow(x1, mp[{x1, y1}]);
res += updCol(y1, mp[{x1, y1}]);
res += updRow(x2, mp[{x2, y2}]);
res += updCol(y2, mp[{x2, y2}]);
mp[{x1, y1}] = 0;
cout << n*n - res << '\n';
}
}
int main() {
#ifdef GLASSES_GIRL
freopen(FILE_NAME".in", "r", stdin);
//freopen(FILE_NAME".out", "w", stdout);
#endif
ios::sync_with_stdio(0); cin.tie(0);
solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |