社区讨论
不理解
学术版参与者 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 条回复,欢迎继续交流。
正在加载回复...