QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#630196 | #6769. Monster Hunter | moyujiang | AC ✓ | 25ms | 5896kb | C++14 | 1.6kb | 2024-10-11 16:59:58 | 2024-10-11 17:00:01 |
Judging History
answer
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a),i##END=(b);i<=i##END;i++)
#define Rof(i,b,a) for(int i=(b),i##END=(a);i>=i##END;i--)
#define go(u) for(int i=head[u];i;i=nxt[i])
#define int long long
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
return x*f;
}
const int N=1e5+10;
int n,m,a[N],h[N],b[N];
bool check(int K){
// printf("K = %lld\n",K);
For(i,1,m)h[i]=b[i];
int o[4];
o[3]=o[1]=o[2]=0;
For(i,1,n)o[a[i]]+=(K/n);
For(i,1,K%n)o[a[i]]++;
For(i,1,m){
if(h[i]==1){
int fl=0;
For(v,1,3)if(o[v]){o[v]--,h[i]=0;fl=1;break;}
if(!fl)return 0;
continue;
}
if(h[i]%2){
if(o[3])o[3]--,h[i]-=3;
else if(o[1])o[1]--,h[i]--;
else h[i]++;
}
}
For(i,1,m){
int x=h[i]/6;
int c=min(o[3]/2,x);
x-=c,o[3]-=2*c;
h[i]-=c*6;
c=min({o[1],o[3],h[i]/4});
o[1]-=c,o[3]-=c,h[i]-=4*c;
x=h[i]/2;
c=min(x,o[2]);
h[i]-=c*2,o[2]-=c;
if(h[i]>=3&&o[3])o[3]--,h[i]-=3;
if(h[i]&&h[i]<=2&&o[1]<h[i]&&o[3])o[3]--,h[i]=0;
if(h[i]>o[1]){
return 0;
}
o[1]-=h[i];
}
return 1;
}
signed main(){
int T=read();while(T--){
For(i,1,n=read())a[i]=read();
For(i,1,m=read())h[i]=b[i]=read();
// cout<<check(4)<<endl;
// return 0;
// For(i,1,20)printf("check(%lld) = %lld\n",i,check(i));
// For(i,1,10)printf("check(%lld) = %lld\n",i,check(i));
int l=1,r=1e16;while(l<=r){
int mid=l+r>>1;
if(check(mid))r=mid-1;
else l=mid+1;
// printf("[%lld, %lld]\n",l,r);
}printf("%lld\n",r+1);
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5896kb
input:
2 2 3 2 3 2 4 2 5 1 2 3 2 1 2 3 3
output:
4 3
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 3960kb
input:
100 21 1 3 3 3 2 3 3 2 2 1 3 2 1 3 2 1 1 1 3 3 3 3 3 3 1 19 1 3 1 1 3 3 1 3 2 3 2 2 3 3 1 1 2 2 2 10 2 2 3 1 5 2 2 5 5 3 8 1 3 3 1 3 2 3 1 3 1 2 1 27 1 1 1 2 1 3 1 2 2 3 3 3 1 1 1 1 2 1 2 2 2 2 3 2 1 3 2 4 5 1 2 2 23 2 1 3 2 3 2 2 3 1 2 1 3 1 2 3 1 3 1 2 2 2 1 1 10 4 3 5 4 5 4 1 4 3 4 8 1 2 1 3 2 3 ...
output:
3 15 3 7 19 12 3 8 7 20 5 10 6 10 3 10 16 1 5 6 10 14 13 8 8 5 13 15 5 10 16 14 10 1 10 4 3 16 5 4 7 8 7 5 13 10 10 10 14 3 9 8 19 16 8 25 11 21 2 3 14 12 4 12 17 22 11 3 14 15 2 9 12 7 3 9 4 9 11 2 2 5 5 3 2 2 4 6 7 10 3 14 2 1 5 4 8 13 14 16
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 1ms
memory: 3848kb
input:
100 22 3 3 3 1 3 2 3 3 3 3 2 2 3 3 1 2 1 2 3 2 3 1 3 10 1 8 11 1 3 2 1 3 3 1 1 1 1 1 3 3 5 13 21 3 1 2 3 2 1 2 1 3 2 2 1 1 1 1 3 2 3 2 3 2 4 1 5 7 10 8 2 1 3 3 2 2 2 2 3 8 11 8 4 2 1 1 2 2 12 8 26 1 2 3 3 1 2 2 2 2 1 3 1 3 2 1 2 1 3 2 1 1 3 2 3 3 2 4 8 6 5 13 30 1 1 3 2 2 1 2 3 1 3 3 2 3 2 2 3 1 2 3...
output:
8 13 12 13 13 17 11 7 6 23 5 5 12 20 2 22 9 10 3 4 22 12 10 5 9 5 11 17 1 20 9 26 8 13 14 10 13 9 17 5 6 11 17 17 18 16 5 19 8 2 13 20 9 8 19 14 16 12 20 19 8 24 7 16 8 5 4 21 1 4 8 9 10 15 7 11 10 2 6 3 4 18 26 8 9 8 11 3 8 6 9 7 20 2 10 22 16 20 14 13
result:
ok 100 lines
Test #4:
score: 0
Accepted
time: 25ms
memory: 3872kb
input:
100 773 2 3 3 2 1 1 1 3 1 3 2 3 2 2 2 2 1 3 3 3 2 3 3 2 2 3 2 1 1 1 3 2 1 1 2 1 2 3 3 3 1 1 3 2 1 3 1 2 3 1 1 1 3 3 1 2 1 3 2 2 3 3 2 3 3 1 3 1 2 3 3 3 2 3 2 1 3 2 3 3 2 2 2 2 3 2 3 1 2 3 2 1 1 1 1 2 2 3 1 2 1 2 2 1 2 3 3 2 2 3 1 3 2 1 2 1 3 3 2 2 3 3 3 1 2 2 3 1 1 3 1 3 3 3 1 3 3 1 1 2 3 2 3 2 2 3 ...
output:
141465623985 146640177725 193302027436 185725363449 27377351959 26962096046 122965020242 164575549427 134405124981 142123242931 239651450114 203676837595 215746363813 176133012841 126667756527 14661286739 153111144139 53633915881 14813690750 194934023573 28317268803 133277272607 239614512471 1786238...
result:
ok 100 lines
Test #5:
score: 0
Accepted
time: 4ms
memory: 4208kb
input:
1 45105 3 1 2 1 1 1 1 2 1 3 3 2 1 1 1 3 3 2 2 1 2 1 2 1 3 1 1 3 3 1 3 1 3 3 2 2 1 1 1 1 1 2 2 2 3 3 1 3 2 1 2 2 1 1 2 2 2 3 1 1 3 1 3 3 3 3 2 2 1 3 3 2 1 1 1 1 2 3 1 1 3 1 1 2 2 1 1 2 2 1 3 2 2 3 2 1 3 2 3 3 2 3 2 2 3 2 1 3 1 1 1 3 2 1 1 3 2 2 3 3 1 3 3 3 2 1 3 1 3 3 3 1 3 2 3 2 3 3 3 2 1 1 1 2 1 3 ...
output:
52702719862
result:
ok single line: '52702719862'
Test #6:
score: 0
Accepted
time: 5ms
memory: 4272kb
input:
1 58785 3 2 2 2 2 2 1 1 1 2 1 2 1 1 3 2 1 2 1 2 2 1 1 3 1 3 2 2 2 2 2 2 2 1 1 2 2 3 3 3 2 1 2 3 3 1 3 3 2 1 1 3 3 3 2 1 3 3 1 2 2 1 1 1 2 3 3 1 3 2 1 1 2 2 3 3 1 1 2 2 2 2 1 3 2 2 3 2 3 2 2 3 2 3 1 1 1 1 2 3 1 1 2 2 3 3 3 2 1 1 1 3 1 2 1 1 1 3 2 2 3 1 2 2 3 2 2 2 1 3 3 1 1 3 1 3 3 1 1 3 3 2 1 2 2 1 ...
output:
203100926
result:
ok single line: '203100926'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3732kb
input:
10 9 3 3 3 1 1 3 2 1 2 5 6 10 4 3 3 8 3 2 2 2 1 3 3 1 3 7 6 1 6 1 3 2 1 2 3 5 1 9 3 6 3 8 2 1 3 1 3 1 2 3 4 10 4 4 10 3 3 3 1 3 4 4 3 6 3 2 3 3 3 1 1 6 7 3 2 1 1 1 3 1 5 7 4 4 8 7 3 2 2 3 5 5 1 6 8 6 1 3 3 9 10 1 10 3 3 3 1 3 3 3 3 3 1 1 6
output:
12 7 12 15 5 3 17 12 8 2
result:
ok 10 lines