题目描述收到情报,有批新造的机器人要运输到前线。小C将去破坏机器人的运输。小C将激光炮放置在公路的一旁,等运输车经过的时候发射(假设激光炮一定可以射穿车辆)。由于能源有限,激光炮只能发射两次。可以认为激光炮放在坐标轴的原点处,并向y轴正方向发射。每辆运输车可以看作是一个矩形,起始的x轴坐标为Xi ,所有的车均位于第一象限,长度为Li,速度为1,朝x轴负方向运动。即经过t时间后,该车车头的x坐标为Xi-t,车尾坐标为Xi-t+Li 。只要打中车的任何一个部分就算击中。
请你算算,他在哪两个时刻发射,才能摧毁最多的运输车。
# -*- coding: utf-8 -*-
n=raw_input()
n=int(n)
car_dict={}
location=[]
goal_dict={}
goal_count_dict={}
for i in range(n):
car=raw_input().split(' ')
left=int(car[0])
right=int(car[1])+left
car_dict[i]=[left,right]
location.append(left)
location.append(right)
location=sorted(set(location))
for j in location:
s=[]
m=0
for i in range(n):
if car_dict[i][0]<=j<=car_dict[i][1]:
s.append(i)
m=m+1
if m>0:
goal_dict[j]=s
goal_count_dict[j]=m
max_car1=sorted(goal_count_dict.items(), key=lambda d:d[1], reverse = True)[0][0]
max_car2=sorted(goal_count_dict.items(), key=lambda d:d[1], reverse = True)[1][0]
max_cars=len(set(goal_dict[max_car1]+goal_dict[max_car2]))
wait_pair=[]
for i in goal_dict.keys():
for j in goal_dict.keys():
if j>i and len(set(goal_dict[i]+goal_dict[j]))>max_cars:
wait_pair.append(tuple([i,j]))
pair_count=[]
for pair in wait_pair:
a1=pair[0]
a2=pair[1]
s=len(set(goal_dict[a1]+goal_dict[a2]))
pair_count.append(s)
print max(pair_count)