QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#630196#6769. Monster HuntermoyujiangAC ✓25ms5896kbC++141.6kb2024-10-11 16:59:582024-10-11 17:00:01

Judging History

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

  • [2024-10-11 17:00:01]
  • 评测
  • 测评结果:AC
  • 用时:25ms
  • 内存:5896kb
  • [2024-10-11 16:59:58]
  • 提交

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