QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#496181 | #9134. Building a Fence | ucup-team3695# | TL | 1ms | 3600kb | C++20 | 1.6kb | 2024-07-28 03:51:42 | 2024-07-28 03:51:42 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
#define pb push_back
#define mp make_pair
int caps[4];
int main() {
cin.tie(0)->sync_with_stdio(0);
cin.exceptions(cin.failbit);
int t;
cin >> t;
while (t--) {
int w, h, s;
cin >> w >> h >> s;
vi sides;
sides.pb(w);
sides.pb(w);
sides.pb(h);
sides.pb(h);
sort(all(sides));
int out = 1e9;
do {
rep(mask, 0, (1 << 12)) {
int med = 0;
rep(i, 0, 4) caps[i] = sides[i];
rep(i, 0, 4) {
//cout << i << ' ' << sides[i] << endl;
if (caps[i] < 0) {
med = -1;
break;
}
//if (mask == 4061 && sides[0] == 7 && sides[3] == 7) cout << "hi " << i << ' ' << caps[i] << endl;
int nums = (caps[i] + s - 1) / s;
med += nums;
int rem = s*nums - caps[i];
if (rem > 0) {
//if (mask == 4061 && sides[0] == 7 && sides[3] == 7) cout << "rem " << rem << endl;
int throwbit = 3*i;
if (mask & (1 << throwbit)) {
// don't throw it out
int dest = 0;
if (mask & (1 << (throwbit+1))) dest += 2;
if (mask & (1 << (throwbit+2))) dest += 1;
if (dest <= i) {
med = -1;
break;
}
caps[dest] -= rem;
}
}
}
if (med != -1) out = min(out, med);
}
} while (next_permutation(all(sides)));
cout << out << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3600kb
input:
7 7 9 4 1 1 2 1 1 4 4 6 2 3 3 5 10 6 4 1 11 5
output:
8 2 4 10 4 8 5
result:
ok 7 numbers
Test #2:
score: -100
Time Limit Exceeded
input:
8000 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 2 8 1 2 9 1 2 10 1 2 11 1 2 12 1 2 13 1 2 14 1 2 15 1 2 16 1 2 17 1 2 18 1 2 19 1 2 20 1 3 1 1 3 2 1 3 3 1 3 4 1 3 5 1 3...
output:
4 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 3 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8 4 4 2 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 10 5 4 4 2 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 12 6 4 3 4 2 4 4 4 3 4 4 4 4 4 4 4 4 4 4 14 7 5 4 4 4 2 4 4 4 4 3 4 4 4 4 4 4 4 4 16 8 6 4 4 4 4 2 4 4 4 4 4 3 4 4 4 4 4 4 18 9 6 5 4 3 4 4...