#H1019. 疾风连击

疾风连击

题目描述

观者有 nn 种姿态,初始她处于姿态 11

接下来她会依次打出 nn 张牌,牌一共有两种类型:

  • 类型 11:直接将姿态变为 xx
  • 类型 22:若姿态为 xx,将姿态转换为 yy

现在对于所有 i[1,n]i\in[1,n],观者想知道她如果选择一些牌不打出(注意不能改变牌的顺序),最后能不能处于姿态 ii,若可以,至少要跳过多少张牌?

输入格式

第一行一个正整数 nn

接下来 nn 行,每行两至三个正整数表示一张牌,类型 11 表示为 1 x,类型 22 表示为 2 x y

输出格式

一行 nn 个数字,分别表示最后使得观者处于姿态 ii 的代价,若不可能则输出 1-1

4
1 1
1 2
2 2 3
2 1 4
2 1 0 1

数据范围

对于 100%100\% 的数据,保证 2n1062\leqslant n\leqslant 10^6,所有姿态编号在 [1,n][1,n] 之间。

数据点编号 nn\leqslant 特殊性质
11 44
232\sim 3 10001000
454\sim 5 A
676\sim 7 B
8108\sim 10

特殊性质 A:保证只存在类型 22

特殊性质 B:保证所有类型 11 的牌在所有类型 22 的牌之前,即类型序列形如 1 1 1 ... 1 2 2 2 ... 2

样例

样例

样例1解释:

跳过第2、4张牌,最后姿态为1;

跳过第3张牌,最后姿态为2;

所有牌都不跳过,最后姿态为3;

跳过第2张牌,最后姿态为4.