CF883K Road Widening
题目描述
$S$ 市市长讨厌树木和草坪。他们占用了如此多的空间,而且他们占用的地方可能有一条路!市长认为,若拆除没有人需要的草坪,城市的一条街道可能会大大拓宽。此外,这可能有助于减少街上发生的交通堵塞。街道从左至右分为 $ n $ 个部分,每个部分由两个整数表示:道路宽度 $ s_i $ 与 草坪 $ g_i $ 的宽度。
市长需要拆除一部分草坪来拓宽道路。对于长度为 $ g_i $ 的草坪,你可以将它拆除 $ x_i $ ( $ x_i $ $ \le $ $ g_i $ ).同时,道路的宽度 $ s_i $ 加上 $ x_i $。
一方面,市长希望拆除尽可能多的草坪(并用道路代替)。另一方面,他不想造成道路快速加宽或变窄,从而导致车祸。为了避免这种情况,市长决定连续路段的道路宽度最多相差1。
你需要找到市长应拆除的草坪长度,并输出拆除这个长度后,每条道路的宽度。
输入格式
第一行输入一个正整数 $ n $ 表示街道的部分数。
接下来 $ n $ 行,每行输入两个正整数: $ s_i $ 和 $ g_i $ 。
输出格式
第一行输出要拆除的草坪长度。
第二行输出 $ n $ 。
如果没有解决方案,请在第一行输出 -1。
说明/提示
$ 1