样例全对,但提交0分
查看原帖
样例全对,但提交0分
967306
gitmeetcat楼主2024/6/25 15:20
#include <bits/stdc++.h>
using namespace std;


/*
1.读题
【问题条件】


2.思考
【建模算法】


3.编写
4.调试
5.回顾

*/
struct dic
{
	string a;
	string b;
};
int w = -1;
bool bo;
const int N = 100 + 10;
int main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif//这别管
	int n;
	dic zd[N];
	string dfe;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> zd[i].a >> zd[i].b;
	}
	cin >> dfe;
	if(dfe[dfe.size()-1]>='a'&&dfe[dfe.size()-1]<='z')
		dfe += '.';
	//上方为正确
	for (int i = 0; i < dfe.size(); i++)
	{
		if (dfe[i] < 'a' || dfe[i] > 'z')
		{
			if (i-1<0||(dfe[i - 1] < 'a' || dfe[i - 1] > 'z'))
			{
				cout << dfe[i];
				w = i;
				continue;
			}
			for (int k = 1; k <= n; k++)
			{
				bo = true;
				//cout <<"k=" << k << "  w=" << w <<" i " << i <<endl;
				for (int j = 0; j < i - w - 1; j++)
				{
					//cout << "  j " << j <<endl;
					//cout<<"zd[k].a[j] " << zd[k].a[j] << "dfe[j+w+1] " << dfe[j+w+1] << endl;
					if (zd[k].a[j] != dfe[j + w + 1])
					{
						bo = false;
						break;
					}

				}

				if (bo)
				{

					cout << zd[k].b ;
					if(i!=dfe.size()-1)
						cout<<dfe[i];

					break;
				}
			}
			if (!bo)
			{
				cout << "UNK";
			}
			w = i;
		}
	}

	return 0;
}

2024/6/25 15:20
加载中...