分类网络
题目描述
Orange设计了一个简单的分类网络,这个网络用于分类信息。网络可以看成是一个由 m m m 层分类状态机构成的一个集合体,其中每层状态机都接受一个 n n n 元一维向量,并且输出一个相同大小的向量。状态机构成一个前向传播网络,即第 i i i 层的输出会作为第 i + 1 i+1 i + 1 层的输入。其中,Orange在每层网络中都会对信息进行一次交换,具体为交换输入向量的任意两个元。
例如,假设对于一个 n = 5 n=5 n = 5 的向量分类状态机,其分类参数为 ( 1 , 3 ) (1, 3) ( 1 , 3 ) ,我们输入一个5维向量 A ⃗ = ( a ‾ , b , c ‾ , d , e ) T \vec{A}=(\underline a,b,\underline c,d,e)^T A = ( a , b , c , d , e ) T ,则他会交换 A 1 ⃗ \vec{A_1} A 1 和 A 3 ⃗ \vec{A_3} A 3 ,输出A ′ ⃗ = ( c ‾ , b , a ‾ , d , e ) T \vec{A'}=(\underline c,b,\underline a,d,e)^T A ′ = ( c , b , a , d , e ) T 。事实上,即交换了第一个位置和第三个位置的元素。
现在,Orange要分类数据,共询问 q q q 次,每次会给你输入一个 n n n 元的向量 A ⃗ \vec{A} A ,并且给你分类网络的入口层 l l l 和出口层 r r r ,你需要输出 A ⃗ \vec{A} A 经过 l ∼ r l \sim r l ∼ r 层分类后,最终输出的向量 A ′ ⃗ \vec{A'} A ′ 。
输入格式
输入第一行为 3 个整数 n , m , q n,m,q n , m , q ,表示向量大小,分类网络层数与询问次数。
接下来 m m m 行,每行包含两个整数 u , v u,v u , v ,表示第 i i i 层分类状态机的参数。
对于每次询问,输入 2 2 2 行,第一行为两个整数 l , r l,r l , r 表示神经网络的入口层 l l l 和出口层 r r r ,第二行为 n n n 个整数,表示输入的待分类向量 A ⃗ \vec A A 。
数据范围
2 ≤ n ≤ 10 2 \le n \le 10 2 ≤ n ≤ 10
1 ≤ A i ⃗ ≤ 100 1 \le \vec{A_i} \le 100 1 ≤ A i ≤ 100
1 ≤ m , q ≤ 10 5 1 \le m,q \le 10^5 1 ≤ m , q ≤ 1 0 5
1 ≤ l ≤ r ≤ n 1 \le l \le r \le n 1 ≤ l ≤ r ≤ n
输出格式
对于每次询问,输出 n n n 个整数,占一行,表示答案。
样例 #1
样例输入 #1
5 5 2
2 3
4 5
1 5
3 4
2 3
3 5
1 2 3 4 5
1 2
1 2 3 4 5
样例输出 #1
5 4 2 3 1
1 3 2 5 4
提示
样例解释
当输入向量为 A ⃗ = ( 1 , 2 , 3 , 4 , 5 ) T \vec A = (1,2,3,4,5)^T A = ( 1 , 2 , 3 , 4 , 5 ) T 时:
经过第3层分类状态机,输出为 ( 5 , 2 , 3 , 4 , 1 ) (5,2,3,4,1) ( 5 , 2 , 3 , 4 , 1 ) ,即交换 A 1 A_1 A 1 与 A 5 A_5 A 5 。
经过第4层分类状态机,输出为 ( 5 , 2 , 4 , 3 , 1 ) (5,2,4,3,1) ( 5 , 2 , 4 , 3 , 1 ) ,即交换 A 3 A_3 A 3 与 A 4 A_4 A 4 。
经过第5层分类状态机,输出为 ( 5 , 4 , 2 , 3 , 1 ) (5,4,2,3,1) ( 5 , 4 , 2 , 3 , 1 ) ,即交换 A 2 A_2 A 2 与 A 3 A_3 A 3 。
因此最后输出结果为 A ⃗ ′ = ( 5 , 4 , 2 , 3 , 1 ) T \vec A'= (5,4,2,3,1)^T A ′ = ( 5 , 4 , 2 , 3 , 1 ) T 。