QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#748128#6135. Bookstassei903#WA 62ms4328kbC++201.5kb2024-11-14 19:25:472024-11-14 19:25:49

Judging History

This is the latest submission verdict.

  • [2024-11-14 19:25:49]
  • Judged
  • Verdict: WA
  • Time: 62ms
  • Memory: 4328kb
  • [2024-11-14 19:25:47]
  • Submitted

answer

#include <bits/stdc++.h>

#define rep(i, l, r) for(int i = (int)l; i < (int)r; i++)
#define all(v) v.begin(), v.end()
#define sz(v) (int)v.size()
using namespace std;

using ll = long long;
using pll = pair<ll, ll>;
using pii = pair<int, int>;
using ld = long double;

typedef vector<ll> vl;
typedef vector<int> vi;

template<class T>
void out(const vector<T> &v) {
    for (auto x: v)cout << x << " ";
    cout << endl;
}

const ll linf = 1e15 + 10;

void solve() {
    
    int n, m; cin >> n >> m;
    vector<ll> a(n);for(auto &x: a) cin >> x;
    if (n == m) {
        cout << "Richman" << endl;
        return;
    }
    int zero = 0;
    rep(i, 0, n) if (a[i] == 0) zero++;
    if (zero > m) {
        cout << "Impossible" << endl;
        return;
    }
    ll ok = 0, ng = linf;

    auto f = [&](ll x) {
        int cnt = 0;
        rep(i, 0, n) {
            if (x >= a[i]) {
                x -= a[i];
                cnt += 1;
            }
        }
        return cnt;
    };

    while(abs(ok - ng) > 1) {
        ll mid = (ok + ng) / 2;
        if (f(mid) <= m) {
            ok = mid;
        }
        else {
            ng = mid;
        }
    }
    if (f(ok) == m) {
        cout << ok << endl;
    }
    else {
        cout << "Impossible" << endl;
    }

}

int main() {


    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T; cin >> T;
    while(T--) {
        solve();
    }
    
}

詳細信息

Test #1:

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

input:

4
4 2
1 2 4 8
4 0
100 99 98 97
2 2
10000 10000
5 3
0 0 0 0 1

output:

6
96
Richman
Impossible

result:

ok 4 lines

Test #2:

score: -100
Wrong Answer
time: 62ms
memory: 4328kb

input:

10012
1 0
2
3 2
0 1 0
2 1
0 0
100000 99999
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000...

output:

1
0
Impossible
99999999999999
38
80
Richman
97
460
Richman
24
50
98
30
15
Richman
Richman
Richman
54
Richman
Richman
450
24
44
349
34
513
28
99
238
Richman
Richman
Richman
66
274
2
160
76
58
91
71
3
Richman
175
32
15
Richman
21
26
Richman
30
Richman
247
300
Richman
Richman
60
312
62
276
Richman
67
R...

result:

wrong answer 5th lines differ - expected: '192', found: '38'