QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#502819#9134. Building a Fenceucup-team045#WA 2ms3600kbC++201.8kb2024-08-03 14:44:302024-08-03 14:44:32

Judging History

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

  • [2024-08-03 14:44:32]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3600kb
  • [2024-08-03 14:44:30]
  • 提交

answer

#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
using LL = long long;

int main(){

#ifdef LOCAL
    freopen("data.in", "r", stdin);
    freopen("data.out", "w", stdout);
#endif

    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    int T;
    cin >> T;
    while(T--){
        int n, m, k;
        cin >> n >> m >> k;
        if (n > m) swap(n, m);
        int ans = 1e9;
        if (m * 2 < k){
            ans = 4;
        }
        else if (n * 2 < k){
            ans = 2;
            int t = m - (k - n);
            if (t < 0) t = m;
            if (t == 0){
                ans += 0;
            }
            else if (t * 2 < k){
                ans += 2;
            }
            else{
                ans += (2 * t + k - 1) / k;
            }
        }
        else if (m < k){
            vector<int> p{n, n, m, m};
            do{
                int t = 0;
                int remain = 0;
                for(auto x : p){
                    if (remain > x){
                        t += 1;
                        remain = k - x;
                    }
                    else if (remain == x){
                        remain = 0;
                    }
                    else{
                        t += 1;
                        remain = remain + k - x;
                    }
                }
                ans = min(ans, t);
            }while(next_permutation(p.begin(), p.end()));
        }
        else{
            ans = (2 * (n + m) + k - 1) / k;
        }
        if (m < k and (k - m) * 2 == n){
            ans = min(ans, 3);
        }
        if (n < k and (k - n) * 2 == m){
            ans = min(ans, 3);
        }
        cout << ans << '\n';
    }

}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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: 2ms
memory: 3600kb

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

result:

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