京东编程笔试题

给定n辆车的横坐标和长度,可以打两枪,打中车的任何部分都算打中。问最多能打中几辆车。

例:

4

2 2

3 1

5 2

7 3

输出:

4


题解:

#include
#include
int a[205],b[205],c[205];
bool q(int w,int e){
	return a[e]<=a[w]&&b[e]>=a[w];
}
int n;
int s(int w,int e){
	int re=0;
	for(int i=1;i<=n;i++)
		if(q(w,i)||q(e,i))re++;
	return re;
}
void work(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int l;
		scanf("%d %d",&a[i],&l);
		b[i]=a[i]+l;
	}
	int ans=0;
	for(int i=1;i<=n;i++)
		for(int j=i+1;j<=n;j++){
				int k=s(i,j);
				if(k>ans)ans=k;
			}
	printf("%d\n",ans); 
} 
int main(){ 
	work(); 
	return 0;
}

你可能感兴趣的:(京东编程笔试题)