Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int a, b, c, n;
- ll ans = 0;
- map <pair<pii, int>, int> removed;
- int dx[6] = {1, -1, 0, 0, 0, 0};
- int dy[6] = {0, 0, -1, 1, 0, 0};
- int dz[6] = {0, 0, 0, 0, -1, 1};
- bool is_removed(int x, int y, int z) {
- if (x < 0 || x >= a || y < 0 || y >= b || z < 0 || z >= c) {
- return true;
- }
- return removed.count(mp(mp(x, y), z));
- }
- void remove(int x, int y, int z) {
- removed[mp(mp(x,y), z)] = 1;
- }
- void remove() {
- int x, y, z;
- scanf("%d %d %d\n", &x, &y, &z);
- for (int d = 0; d < 6; d++) {
- int xx = x + dx[d];
- int yy = y + dy[d];
- int zz = z + dz[d];
- if (is_removed(xx, yy, zz)) {
- ans--;
- } else {
- ans++;
- }
- }
- remove(x, y, z);
- }
- int main() {
- scanf("%d %d %d %d\n", &a, &b, &c, &n);
- ans = 2ll * (a * 1ll * b + a * 1ll * c + b * 1ll * c);
- while (n--) {
- remove();
- }
- printf("%lld\n", ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement