AT_joisc2017_d 切符の手配 (Arranging Tickets)
题目描述
#「JOISC 2017 Day 2」门票安排
**题目译自 [JOISC 2017](https://www.ioi-jp.org/camp/2017/2017-sp-tasks/index.html) Day2 T1「[切符の手配](https://www.ioi-jp.org/camp/2017/2017-sp-tasks/2017-sp-d2.pdf)([Arranging Tickets](https://www.ioi-jp.org/camp/2017/2017-sp-tasks/2017-sp-d2-en.pdf))」**
某条铁路环线共有 $N$ 个车站,顺时针依次编号为 $1\ldots N$。
该线路有 $N$ 种车票,分别编号为 $1\ldots N$。一张车票 $i(1\le i\le N-1)$ 仅供一人从车站 $i$ 顺时针移动到车站 $i+1$,或供一人从车站 $i+1$ 逆时针移动到车站 $i$。一张车票 $N$ 仅供一人从车站 $N$ 顺时针移动到车站 $1$,或供一人从车站 $1$ 逆时针移动到车站 $N$。
购买车票只有一种方法:购买套餐,套餐包含车票 $1\ldots N$ 各 $1$ 张。
你是一名导游,你正在为游客订票。现有 $M$ 个订票请求,订票请求 $i(1\le i\le M)$ 表示从车站 $A_i$ 到车站 $B_i$ 有 $C_i$ 名旅客(路线可以不同)。
求最少需要购买多少套餐。
输入格式
第一行有两个整数 $N,M$,用空格分隔。
在接下来的 $M$ 行中,第 $i$ 行 $(1\le i\le M)$ 有三个整数 $A_i,B_i,C_i$,用空格分隔。
输出格式
一个整数,表示最少需要购买的套餐数。
## 样例
#### 样例输入 1
```plain
3 3
1 2 1
2 3 1
3 1 1
```
#### 样例输出 1
```plain
1
```
#### 样例解释 1
所有人都顺时针移动。
#### 样例输入 2
```plain
3 2
1 2 4
1 2 2
```
#### 样例输出 2
```plain
3
```
#### 样例解释 2
下面是一种需购买 $3$ 个套餐的方法:
- 对于请求 $1$,$3$ 人顺时针移动,$1$ 人逆时针移动。
- 对于请求 $2$,$2$ 人逆时针移动。
没有更优的方案。
#### 样例输入 3
```plain
6 3
1 4 1
2 5 1
3 6 1
```
#### 样例输出 3
```plain
2
```
#### 样例解释 3
把车票 $1,2,3$ 给第一个人,把车票 $1,6,5$ 给第二个人,把车票 $3,4,5$ 给第三个人。
没有更优的方案。
说明/提示
|Subtask #|分值|$N$|$M$|$C_i(1\le i\le M)$|
|-|-|-|-|-|
|1|10|$N\le 20$|$M\le 20$|$C_i=1$|
|2|35|$N\le 300$|$M\le 300$|$C_i=1$|
|3|20|$N\le 3000$|$M\le 3000$|$C_i=1$|
|4|20|$N\le 2\times 10^5$|$M\le 10^5$|$C_i=1$|
|5|15|$N\le 2\times 10^5$|$M\le 10^5$||
感谢 Planet6174 提供的翻译