QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#529102#9134. Building a Fencecreatix#WA 1ms3704kbC++141.1kb2024-08-24 09:19:242024-08-24 09:19:24

Judging History

你现在查看的是最新测评结果

  • [2024-08-24 09:19:24]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3704kb
  • [2024-08-24 09:19:24]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
inline int CeilDiv(int x, int y) {
    return (x + y - 1) / y;
}
inline int Calc(int a, int b, int s) {
    int k = CeilDiv(a, s);
    int rm = k * s - a;
    int k2 = CeilDiv(b, s);
    if (b >= rm) k2 = min(k2, CeilDiv(b - rm, s));
    return k + k2;
}
inline int Solve(int a, int b, int s) {
    if (a < 0 || b < 0) return 2e9;
    if (a == 0 && b == 0) return 0;
    if (a == 0 || b == 0) return CeilDiv(a + b, s);
    // return min(Calc(a, b, s), Calc(b, a, s));
    if (s > a + b) return 2;
    return CeilDiv(a + b, s);
}
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int Case;
    cin >> Case;
    while (Case--) {
        int w, h, s;
        cin >> w >> h >> s;
        if (w > h) swap(w, h);
        if (s <= w) {
            cout << CeilDiv((w + h) * 2, s) << '\n';
        } else {
            int base = 2;
            int rm = s - w;
            int ans = min({Solve(h, h, s), Solve(h - rm, h, s), Solve(h - rm, h - rm, s), Solve(h - 2 * rm, h, s)});
            cout << base + ans << '\n';
        }
    }
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3704kb

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: 1ms
memory: 3596kb

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...

result:

wrong answer 866th numbers differ - expected: '3', found: '4'