社区讨论

不理解

学术版参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo1hpi6b
此快照首次捕获于
2023/10/22 21:13
2 年前
此快照最后确认于
2023/11/02 21:50
2 年前
查看原帖
P1515
CPP
#include<bits/stdc++.h> 
using namespace std;
int a1,a2,n;
int lv[400];
int h;
int ans;
int b[10000000]; 
int a[400]={0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000};

int main(){
	cin>>a1>>a2>>n;
	for(int i=1;i<=n;i++){
		cin>>lv[i];
		h++;
		a[h+14]=lv[i];
	}
	sort(a+1,a+h+15);
	h=h+14;
	b[1]=1;
	int head=1,rear=1;
	int l=0;
	while(head<=rear){
		for(int i=b[head]+1;i<=h;i++){
			l++;
			if(a[i]-a[b[head]]>=a1&&a[i]-a[b[head]]<=a2){
			rear++;
	//	cout<<l<<' '<<rear<<' '<<head<<' '<<a[b[head]]<<" "<<a[i]<<"     ";
			b[rear]=i;
		}
	    else if(a[i]-a[b[head]]>a2){
	    	break;
		}
	}
	head++;
	if(a[b[rear]]==7000){
			ans++;
		}
		
	}
	cout<<ans/2;
	
}/*
500
1500
0
*/
有没有大佬知道为什么ans要/2啊

回复

0 条回复,欢迎继续交流。

正在加载回复...