QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#522286 | #9134. Building a Fence | berarchegas# | WA | 220ms | 3644kb | C++20 | 1.1kb | 2024-08-16 20:56:55 | 2024-08-16 20:56:55 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
map<vector<int>, int> mp;
int calc(vector<int> &v, int s) {
if (mp.count(v)) return mp[v];
int ans = 1e9;
if (v[0] % s == 0 && v[1] % s == 0 && v[2] % s == 0 && v[3] % s == 0) {
ans = 0;
for (int i = 0; i < 4; i++) ans += v[i] / s;
return mp[v] = ans;
}
for (int i = 0; i < 4; i++) {
if (v[i] % s != 0) {
vector<int> nv = v;
int x = nv[i] % s;
nv[i] -= x;
for (int j = 0; j < 4; j++) {
if (i != j && v[j] % s != 0 && v[j] >= s - x) {
nv[j] -= s - x;
ans = min(ans, 1 + calc(nv, s));
nv[j] += s - x;
}
}
ans = min(ans, 1 + calc(nv, s));
}
}
return mp[v] = ans;
}
int main() {
int t;
cin >> t;
while (t--) {
int w, h, s;
cin >> w >> h >> s;
vector<int> v = {w, w, h, h};
cout << calc(v, s) << '\n';
mp.clear();
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3564kb
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
Wrong Answer
time: 220ms
memory: 3644kb
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 6 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 6 4 3 4 4...
result:
wrong answer 103rd numbers differ - expected: '5', found: '6'