답안 #165528

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
165528 2019-11-27T12:01:22 Z Abdulaziz_Kazim Zamjena (COCI18_zamjena) C++17
56 / 70
905 ms 65536 KB
#include<bits/stdc++.h>
using namespace std;
string dizi[100007];
string dizi2[100007];
map<string,vector<pair<int,bool>>>degisken;
map<string,string>act;
int main()
{
	
	int n;
	cin >> n;
	// string gir;
	for(int i=0;i<n;i++)
	{
		cin >> dizi[i];
		if(!isdigit(dizi[i][0]))
		{
			degisken[dizi[i]].push_back({i,0});
		}
	}
	for(int i=0;i<n;i++)
	{
		cin >> dizi2[i];
		if(!isdigit(dizi2[i][0]))
		{
			degisken[dizi2[i]].push_back({i,1});
			// if(isdigit(dizi[i][0]))
			// {

			// }
		}
		else
		{
			if(isdigit(dizi[i][0]))
			{
				if(dizi[i]!=dizi2[i])
				{
					cout << "NE\n";
					exit(0);
				}
			}
		}
	}
	for(int i=0;i<=n;i++)
	{
		// for(int i=0;i<n;i++)
		// {
		// 	cout << dizi[i] << " ";
		// }
		// cout <<"\n";
		// for(int i=0;i<n;i++)
		// {
		// 	cout << dizi2[i] << " ";
		// }
		// cout <<"\n\n";
		if(!isdigit(dizi[i][0]) && !isdigit(dizi2[i][0]) && dizi[i]!=dizi2[i])
		{
			// cout << i << " ";
			string za=dizi2[i];
			for(auto x:degisken[za])
			{
				degisken[dizi[i]].push_back(x);

				// cout << x.first << " ";
				if(x.second==0)
				{
					dizi[x.first]=dizi[i];
				}
				else
					dizi2[x.first]=dizi[i];
			}
			degisken[za].clear();
		}
	}
	for(int i=0;i<n;i++)
	{
		if(isdigit(dizi[i][0]) && !isdigit(dizi2[i][0]))
		{
			string muz=dizi[i],muz2=dizi2[i];
			for(auto x:degisken[muz2])
			{
				if(x.second==0)
				{
					dizi[x.first]=muz;
				}
				else
					dizi2[x.first]=muz;
			}
			degisken[muz2].clear();
		}
		else if(!isdigit(dizi[i][0])&& isdigit(dizi2[i][0]))
		{
			string muz=dizi2[i],muz2=dizi[i];
			for(auto x:degisken[muz2])
			{
				if(x.second==0)
				{
					dizi[x.first]=muz;
				}
				else
					dizi2[x.first]=muz;
			}
			degisken[muz2].clear();
		}
	}
	/*for(int i=0;i<n;i++)
	{
		cout << dizi[i] << " ";
	}
	cout <<"\n";
	for(int i=0;i<n;i++)
	{
		cout<< dizi2[i] << " ";
	}*/
	for(int i=0;i<n;i++)
	{
		if(dizi[i]!=dizi2[i])
		{
			cout <<"NE\n";
			exit(0);
		}
	}
	cout << "DA\n";
	exit(0);
	// for(int i=0;i<n;i++)
	// {
	// 	if(!isdigit(dizi[i][0]) && !isdigit(dizi2[i][0]))
	// 	{
	// 		for(auto x:degisken2[dizi2[i]])
	// 		{
	// 			// degisken[dizi[i]]
	// 		}
	// 	}
	// }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 6648 KB Output is correct
2 Correct 7 ms 6648 KB Output is correct
3 Correct 8 ms 6560 KB Output is correct
4 Correct 7 ms 6520 KB Output is correct
5 Correct 7 ms 6648 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 6524 KB Output is correct
2 Correct 7 ms 6520 KB Output is correct
3 Correct 7 ms 6648 KB Output is correct
4 Correct 7 ms 6520 KB Output is correct
5 Correct 8 ms 6648 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 6620 KB Output is correct
2 Correct 8 ms 6776 KB Output is correct
3 Correct 7 ms 6648 KB Output is correct
4 Correct 31 ms 6520 KB Output is correct
5 Correct 8 ms 6520 KB Output is correct
6 Correct 7 ms 6520 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 8568 KB Output is correct
2 Correct 10 ms 6776 KB Output is correct
3 Correct 17 ms 7160 KB Output is correct
4 Correct 55 ms 10360 KB Output is correct
5 Correct 25 ms 7032 KB Output is correct
6 Correct 15 ms 6904 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 905 ms 65536 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -