抱抱 官方题解
这里是官方题解。
众所周知,设长方体的长、宽、高分别为
考察剩余部分的横坐标
//By: OIer rui_er
#include <bits/stdc++.h>
#define rep(x,y,z) for(int x=(y);x<=(z);x++)
#define per(x,y,z) for(int x=(y);x>=(z);x--)
#define debug(format...) fprintf(stderr, format)
#define fileIO(s) do{freopen(s".in","r",stdin);freopen(s".out","w",stdout);}while(false)
using namespace std;
typedef long long ll;
mt19937 rnd(std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
int randint(int L, int R) {
uniform_int_distribution<int> dist(L, R);
return dist(rnd);
}
template<typename T> void chkmin(T& x, T y) {if(x > y) x = y;}
template<typename T> void chkmax(T& x, T y) {if(x < y) x = y;}
int a, b, c, m, x, y, z;
int main() {
for(scanf("%d%d%d%d", &a, &b, &c, &m); m; m--) {
int op, k;
scanf("%d%d", &op, &k);
if(op == 1) chkmax(x, k);
else if(op == 2) chkmax(y, k);
else chkmax(z, k);
printf("%lld\n", 1LL * (a - x) * (b - y) * (c - z));
}
return 0;
}