QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#723665#9599. Dragon BloodlineArvinWA 217ms4284kbC++201.7kb2024-11-07 23:31:042024-11-07 23:31:04

Judging History

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

  • [2024-11-07 23:31:04]
  • 评测
  • 测评结果:WA
  • 用时:217ms
  • 内存:4284kb
  • [2024-11-07 23:31:04]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define ld long double
#define lll  __int128
#define dhm std::fixed<<std::setprecision
#define prq priority_queue
using ll = long long;
using ull = unsigned long long;
typedef pair<int, int> PII;
int T;
template <typename T>
using min_heap = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
using max_heap = priority_queue<T, vector<T>, less<T>>;
int sum[30];
void solve(){
    int n,k;
    std::cin>>n>>k;
    std::vector<ll>a(n+1);
    for(int i = 1; i <= n ; i ++) {
        std::cin>>a[i];
    }
    std::vector<ll>b(60+1);
    std::vector<ll>bb(60+1);
    for(int i = 1; i <= k ; i ++) {
        std::cin>>b[i];
    }
    ll l = 0;
    ll r = 1e18;
    auto check = [&](ll x)->bool {
        bb = b;
        max_heap<int> q;
        for(int i=1;i<=n;i++) {
            q.push(a[i]*x*1ll);
        }
        int f=k-1;
        while(!q.empty()) {
            if(f<0) return 0;
            int t=q.top();
            q.pop();
            int cnt=max(1ll,min(bb[f+1],t/sum[f]));
            t=t-cnt*sum[f];
            if(t>0) q.push(t);
            bb[f+1]-=cnt;
            if(bb[f+1]==0) {
                f--;
            }
        }
        return 1;
    };
    while(l<r) {
        ll mid = l + r+1>>1;
        if(check(mid)) l = mid;
        else r = mid - 1;
    }
    std::cout<<l<<endl;
}
signed main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    sum[0]=1;
    sum[1]=2;
    for(int i=2;i<=29;i++) {
        sum[i]=sum[i-1]*2;
    }
    T = 1;
    std::cin>>T;
    while(T --)
        solve();
    return 0;
}

詳細信息

Test #1:

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

input:

6
4 3
1 2 3 4
4 4 4
3 2
1 1 1
1 7
3 4
6 6 2
1 1 5 5
3 5
3 1 1
1 1 1 1 1
4 5
1 9 9 8
2 2 2 3 1
5 4
1 3 1 7 1
4 1 5 2

output:

2
4
4
5
2
3

result:

ok 6 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3784kb

input:

1
1 20
1
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000

output:

1048575000000000

result:

ok single line: '1048575000000000'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3592kb

input:

2
3 2
1 1 1
1 7
4 2
1 1 1 1
1 2

output:

4
0

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 217ms
memory: 4284kb

input:

1
50000 20
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

1048575

result:

ok single line: '1048575'

Test #5:

score: -100
Wrong Answer
time: 32ms
memory: 3540kb

input:

1000
37 20
2 8 8 7 8 7 4 6 7 4 7 4 8 4 4 5 8 3 5 5 7 7 10 6 3 2 5 3 5 8 3 6 2 4 7 3 3
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
9 12
4 7 12 6 12 18 11 35 19
3 8 2 6 3 6 4 3 8 4 4 9
26 13
9 9 5 3 4 5 2 10 4 6 6 9 5 3 9 10 6 2 10 4 2 9 9 3 9 3
1 1 1 1 1 1 1 1 1 1 1 1 1
33 18
3 5 3 3 4 1 4 3 1 4 5 1 3 4 ...

output:

0
222
0
18103
0
0
0
12
0
90
0
77
4
0
78
4
5
18
0
576460752303423508
0
47
0
0
2307
85
0
571
352
16
0
39
1
21
0
1
0
0
5631
795
0
231
0
0
1615
0
0
0
0
0
91
0
5
9
13
264
493
156
0
0
29
0
8191
0
138
0
1
0
0
62526843532062340
100
0
0
136
98
160
0
0
3
149
0
0
250125343372354036
0
0
10532
2437
0
0
1
52
50
0...

result:

wrong answer 20th lines differ - expected: '11', found: '576460752303423508'