首页 > 试题广场 >

小球投盒

[编程题]小球投盒
  • 热度指数:3132 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小红一共有 n 个盒子,标号为 1 到 n,小红向盒子里放入小球 m 次,每次进行以下两个操作中的一个:
1. 向编号为 x 的盒子里放入一个小球;
2. 向除了编号为 x 的其他 n - 1 盒子里放入一个小球。
小红想知道,第几次操作之后,所有盒子里至少都有一个小球,如果一直无法达到这个目标,输出 -1

输入描述:
第一行两个整数 nm,表示盒子的数量和操作的次数。
接下来 m 行,每行两个整数 t_ix_i,表示第 i 次操作的类型和 x 的值。
1 \leq n, m \leq 10^5
1 \leq t_i \leq 2
1 \leq x_i \leq n


输出描述:
输出一个整数,表示第几次操作之后,所有盒子里至少都有一个小球,如果一直无法达到这个目标,输出 -1
示例1

输入

3 3
1 1
1 2
1 3

输出

3

说明

三次操作之后,所有盒子里都至少有一个小球。
示例2

输入

3 4
1 1
2 2
1 3
1 2

输出

4

说明

第一次操作后,盒子 1 里有小球。
第二次操作后,盒子 1、3 里有小球。
第三次操作后,盒子 1、3 里有小球。
第四次操作后,每个盒子里都有小球。

这道题你会答吗?花几分钟告诉大家答案吧!