原题链接:Problem - E - Codeforces
题目大意:多组测试数据,给一个大长方体的长宽高和一个小长方体的体积,问小长方体最大能在大长方体里面放多少种不同的位置。
思路:枚举小长方体的长和宽,然后判断高能不能和长和宽构成给的体积,高会不会超过大长方体就可以了。
//冷静,冷静,冷静
//调不出来就重构
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pii;
typedef pair<pii,pii> pll;
const int N=1e6+10,mod=1e9+7;
char mp[110][110];
ll dx[]={0,1,0,-1};
ll dy[]={1,0,-1,0};
ll p[N];
ll dist[110][110][2];
bool st[110][110][2];
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll t;cin>>t;while(t--){ll x,y,z,k;cin>>x>>y>>z>>k;ll max1=0;for(int i=1;i<=x;i++){for(int j=1;j<=y;j++){if(k%(i*j)==0)//能否构成小长方体 {ll c=k/(i*j);if(c>z)continue;//大长方体能不能放下 max1=max(max1,(x-i+1)*(y-j+1)*(z-c+1));}}}cout<<max1<<endl;}return 0;
}