ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) A

Our beloved detective, Sherlock is currently trying to catch a serial killer who kills a person each day. Using his powers of deduction, he came to know that the killer has a strategy for selecting his next victim.

The killer starts with two potential victims on his first day, selects one of these two, kills selected victim and replaces him with a new person. He repeats this procedure each day. This way, each day he has two potential victims to choose from. Sherlock knows the initial two potential victims. Also, he knows the murder that happened on a particular day and the new person who replaced this victim.

You need to help him get all the pairs of potential victims at each day so that Sherlock can observe some pattern.

Input

First line of input contains two names (length of each of them doesn‘t exceed 10), the two initials potential victims. Next line contains integer n(1?≤?n?≤?1000), the number of days.

Next n lines contains two names (length of each of them doesn‘t exceed 10), first being the person murdered on this day and the second being the one who replaced that person.

The input format is consistent, that is, a person murdered is guaranteed to be from the two potential victims at that time. Also, all the names are guaranteed to be distinct and consists of lowercase English letters.

Output

Output n?+?1 lines, the i-th line should contain the two persons from which the killer selects for the i-th murder. The (n?+?1)-th line should contain the two persons from which the next victim is selected. In each line, the two names can be printed in any order.

Examples

input

ross rachel4ross joeyrachel phoebephoebe monicamonica chandler

output

ross racheljoey racheljoey phoebejoey monicajoey chandler

input

icm codeforces1codeforces technex

output

icm codeforcesicm technex

Note

In first example, the killer starts with ross and rachel.

  • After day 1, ross is killed and joey appears.
  • After day 2, rachel is killed and phoebe appears.
  • After day 3, phoebe is killed and monica appears.
  • After day 4, monica is killed and chandler appears.

题意:看样列

解法:没啥说的

 1 #include<bits/stdc++.h>
 2 typedef long long LL;
 3 typedef unsigned long long ULL;
 4 typedef long double LD;
 5 using namespace std;
 6 int main(){
 7     string s1,s2;
 8     cin>>s1>>s2;
 9     cout<<s1<<" "<<s2<<endl;
10     int n;
11     cin>>n;
12     for(int i=1;i<=n;i++){
13         string s3,s4;
14         cin>>s3>>s4;
15         if(s3==s1){
16             s1=s4;
17         }else{
18             s2=s4;
19         }
20         cout<<s1<<" "<<s2<<endl;
21     }
22     return 0;
23 }
时间: 2024-10-12 22:18:28

ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) A的相关文章

ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) D

Moriarty has trapped n people in n distinct rooms in a hotel. Some rooms are locked, others are unlocked. But, there is a condition that the people in the hotel can only escape when all the doors are unlocked at the same time. There are m switches. E

ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) C

Molly Hooper has n different kinds of chemicals arranged in a line. Each of the chemicals has an affection value, The i-th of them has affection value ai. Molly wants Sherlock to fall in love with her. She intends to do this by mixing a contiguous se

ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined)

前四题比较水,E我看出是欧拉函数傻逼题,但我傻逼不会,百度了下开始学,最后在加时的时候A掉了 AC:ABCDE Rank:182 Rating:2193+34->2227 终于橙了,不知道能待几天 A.A Serial Killer 题目大意:一开始给你两个字符串,每次给你当前两个串中的一个和一个新的串,用新的串换掉旧的,每次输出当前的串.(次数<=1000) 思路:二逼题 #include<iostream> using namespace std; int main() { s

【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) C】 Permutation Cycle

[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] p[i] = p[p[i]]一直进行下去 在1..n的排列下肯定会回到原位置的. 即最后会形成若干个环. g[i]显然等于那个环的大小. 即让你形成若干个环. 每个环的大小只能为A或B 则相当于问Ax+By=n是否有解. 可以枚举x然后看看n-A*x能否被B整除. 构造x个长度为A的环,y个长度为B的环就好了 [代码] #include <bits/stdc++.h> using namespace std; const in

【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) B】Recursive Queries

[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 写个记忆化搜索. 接近O(n)的复杂度吧 [代码] #include <bits/stdc++.h> using namespace std; const int N = 1e6; int g[N+10]; int pre[N+10][20]; int f(int x){ int temp = 1; while (x){ if (x%10!=0) temp*=(x%10); x/=10; } return temp; } in

【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) A】 Palindromic Supersequence

[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 字符串倒着加到原串右边就好 [代码] #include <bits/stdc++.h> using namespace std; int main(){ #ifdef LOCAL_DEFINE freopen("rush_in.txt", "r", stdin); #endif ios::sync_with_stdio(0),cin.tie(0); string s; cin >&

【ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) D】Tree

[链接] 我是链接,点我呀:) [题意] 让你在树上找一个序列. 这个序列中a[1]=R 然后a[2],a[3]..a[d]它们满足a[2]是a[1]的祖先,a[3]是a[2]的祖先... 且w[a[1]]<=w[a[2]]<=w[a[3]].... 且要求这个序列的长度最长 (且a[1]和a[2]的简单路径之间不能有大于等于a[1]的点 (也就是能取就取 [题解] 考虑一个naive的思路. 定义一个next[i]数组,表示i往上最近的权值大于i的节点所在的位置. 则我们每次输入2 R X的

ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined)

占坑,明天写,想把D补出来一起写. 原文地址:https://www.cnblogs.com/ZERO-/p/8455990.html

ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined) ---d

D. Tree 最暴力的想法自然是,对于每一次询问,沿着父亲一点一点往上跳模拟.这样似乎并不能优化... 稍微好一点的想法是对于每一个点开一个nxt数组表示父亲中权值大于他的里面离他最近的在哪里,同样对于每一次询问模拟往上跳,每次加点模拟往上找,复杂度依旧没有变化,但为我们提供了一个思路,我们可以倍增啊! 首先我们对于2操作,我们记录sum[x][i]表示他的2^i个nxt的值的和是多少,这样我们就可以快速求出在总权值小于x的前提下最多能跳到哪里. 考虑如何求出这个数组. 定义nxt[x][i]