Submission details
Task:Swapping letters
Sender:dsedov
Submission time:2018-09-15 16:48:16 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'void Load()':
input/code.cpp:22:33: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'int' [-Wformat=]
   scanf("%d%d", f[i][0], f[i][1])
                 ~~~~~~~         ^
input/code.cpp:22:33: warning: format '%d' expects argument of type 'int*', but argument 3 has type 'int' [-Wformat=]
input/code.cpp:23:2: error: expected ';' before 'cin'
  cin >> c1 >> c2;
  ^~~
input/code.cpp:22:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", f[i][0], f[i][1])
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

Code

#include <stdio.h>
#include <iostream>
#include <memory.h>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

#define sqr(a) ((a) * (a))
#define pi 3.1415926535897932384626433832795

//#define TASK "d"

int n, a;
string c1, c2;
char f[326][2];

void Load()
{
	cin >> n;
	for(int i = 0; i < n; i++)
		scanf("%d%d", f[i][0], f[i][1])
	cin >> c1 >> c2;
}

void Solve()
{
	if (c1.length() != c2.length())
	{
		cout << "NO";
		return;
	}
	int len = c1.length();

	for(int i = 0; i < n; i++)
	{
		
		int l = 0, r = 0;
		//bool ok = true;
		while(l < len && r < len)
		{
			while((c1[l] != f[i][0] && c1[l] != f[i][1]) && l < len)
				l++;
			
			while((c2[r] != f[i][0] && c2[r] != f[i][1]) && r < len)
				r++;
			
			if(c1[l] != c2[r])
			{
		//		cerr << c1[l] << " " << c2[r] << endl;
				cout << "NO";
				return;	
			}
			l++;
			r++;
		}

		while((c1[l] != f[i][0] && c1[l] != f[i][1]) && l < len)
				l++;
		while((c2[r] != f[i][0] && c2[r] != f[i][1]) && r < len)
				r++;

		if (l != r)
		{
			cout << "NO";
			return;
		}
	}

	cout << "YES";
}

int main()
{
//	freopen(TASK".in", "r", stdin);
//	freopen(TASK".out", "w", stdout);
	
	Load();
	Solve();

	return 0;
}