#P5729. 排队布局

排队布局

题目描述

当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ{FJ}N{N(}2<=N<=1000{2<=N<=1000)}头奶牛,编号从1{1}N{N,}沿一条直线站着等候喂食。奶 牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。

即使说,如果我们想象奶牛是站在一条数轴上的话,允许有两头或更多奶牛拥有相同的横坐标。一些奶牛相互间存有好感,它们希望两者之间的距离不超过一个给定的数L{L}。另一方面,一些奶牛相互间非常反感,它们希望两者间的距离不小于一个给定的数D{D}

给出ML{ML}条关于两头奶牛间有好感的描述,再给出MD{MD}条关于两头奶牛间存有反感的描述。1<=ML,MD<=10000{(1<=ML,MD<=10000,}1<=L,D<=1000000{1<=L,D<=1000000)}你的工作是:

如果不存在满足要求的方案,输出1{-1};如果1{1}号奶牛和N{N}号奶牛间的距离可以任意大,输出2{-2};否则,计算出在满足所有要求的情况下,1{1}号奶牛和N{N}号奶牛间可能的最大距离。

输入格式

1{1 }行:三个以空格分隔的整数:N{N}ML{ML }MD{MD}

2...ML+1{2...ML+1 }行:

每行包含三个以空格分隔的正整数:A{A}B{B }D{D,}其中 1<=A<B<=N{1 <= A < B <= N}。奶牛 A{A }B{B }最多只 能是 D(1<=D<=1,000,000){D (1 <= D <= 1,000,000) }分开。

ML+2..ML+MD+1{ML+2..ML+MD+1 }行:

每行包含三个以空格分隔的正整数:A{A}B{B }D{D,}其中 1<=A<B<=N{1 <= A < B <= N}

奶牛 A{A }B{B }必 须至少为 D(1<=D<=1,000,000){D (1 <= D <= 1,000,000) }分开。

输出格式

1{1}行:单个整数。如果不可能排列,则输出1{-1}

如果奶牛1{1}N{N}可以任意相距,则输出2{-2}。否则,输出奶牛1{1}N{N}之间的最大可能距离

样例

输入样例

4 2 1
1 3 10
2 4 20
2 3 3

输出样例

27

提示

输入详细信息:

4{4}头牛。奶牛1{1}号和3{3}号不得超过10{10}头除此之外,奶牛2{2}4{4}之间的距离不得超过20{20}个单位,并且奶牛#2{2}和#3{3}彼此不喜欢,且相距不得少于3{3}个单位。