QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#587102#9134. Building a Fencerikka_lyly#WA 1ms3716kbC++201.9kb2024-09-24 17:35:182024-09-24 17:35:18

Judging History

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

  • [2024-09-24 17:35:18]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3716kb
  • [2024-09-24 17:35:18]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ull unsigned long long
#define int ll
#define INF 0x3f3f3f3f3f3f3f3f

int updiv(int a, int b)
{
    return a / b + !!(a % b);
}

void solve()
{
    int w, h, s;
    cin >> w >> h >> s;
    if(w >= s && h >= s)
    {
        cout << updiv(2 * (h + w), s) << '\n';
        return;
    }
    else if(w >= s || h >= s)
    {
        if(w < h)
            swap(w, h);
        if(s == 2 * h)
        {
            cout << updiv(2 * w, s) + 1 << '\n';
        }
        else if(s < 2 * h)
        {
            cout << updiv(2 * w - (2 * s - 2 * h), s) + 2 << '\n';
        }
        else
        {
            int ans = INF;
            if(1)//都不放
            {
                ans = min(ans, updiv(2 * w, s));
            }
            if(1)//放一个
            {
                ans = min(ans, updiv(2 * w - (s - h), s));
            }
            if(w >= (s - h) * 2)//一边放两个
            {
                ans = min(ans, updiv(2 * w - 2 * (s - h), s));
            }
            if(1)//两边各一个
            {
                int len = w - (s - h);
                if(len >= s)
                    ans = min(ans, updiv(2 * (w - (s - h)), s));
                else if(len * 2 == s)
                    ans = min(ans, 1ll);
                else
                    ans = min(ans, 2ll);
            }
            cout << ans + 2 << '\n';
        }
    }
    else
    {
        if(h + w == s)
            cout << 2 << '\n';
        else if(2 * w == s || 2 * h == s || 2 * w + h == s || 2 * h + w == s || 3 * s == 2 * (w + h))
            cout << 3 << '\n';
        else
            cout << 4 << '\n';
    }
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
}

Details

Tip: Click on the bar to expand more detailed information

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: 3716kb

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
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
6
3
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
8
4
4
2
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
10
5
4
4
2
3
4
3
3
4
4
4
4
4
4
4
4
4
4
4
12
6
4
3
4
2
3
4
4
3
3
4
4
4
4
4
4
4
4
4
14
7
5
4
4
4
2
3
4
4
4
3
3
4
4
4
4
4
4
4
16
8
6
4
4
4
4
2
3
4
4
4
4
3
3
4
4
4
4
4
18
9
6
5
4
3
4
4...

result:

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