10分求调
  • 板块P1918 保龄球
  • 楼主dys0711
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/15 22:09
  • 上次更新2024/12/16 16:13:16
查看原帖
10分求调
1420293
dys0711楼主2024/12/15 22:09
#include<bits/stdc++.h>
using namespace std;

struct app{
	int a,b;//a是瓶子数,b是位置
}ap[100002];

bool emd(app a,app b){
	return a.a<b.a;
}

int main(){
	int n,q,m,l,r,mid;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&ap[i].a);
		ap[i].b=i;
	}
	sort(ap+1,ap+n+1,emd);
	scanf("%d",&q);
	while(q--){
		scanf("%d",&m);
		l=1;
		r=n;
		while(l<=r){
			mid=(l+r)/2;
			if(ap[mid].a>=m){
				r=mid-1;
			}
			else{
				l=mid+1;
			}
		}
		if(ap[l].a && l<=n){
			printf("%d\n",ap[l].b);
		}
		else{
			printf("0\n");
		}
	}
	return 0;
}

感激不尽

2024/12/15 22:09
加载中...