CF91A #2WA求助
  • 板块学术版
  • 楼主Ian_NIE
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/27 09:13
  • 上次更新2024/1/27 11:43:20
查看原帖
CF91A #2WA求助
602171
Ian_NIE楼主2024/1/27 09:13
#include <iostream>
#include <vector>
#include <algorithm>
#define int long long
using namespace std;

int k, j, ans;
string s1, s2;
vector<int> pos[305];

signed main()
{
	cin >> s1 >> s2;
	for(int i = 0; i <= s1.size() - 1; i++) pos[s1[i]].push_back(i);
	for(int i = 0; i <= s2.size() - 1; i++)
		if(pos[s2[i]].empty())
		{
			k = i;
			break;
		}
	if(k < s2.size()) cout << -1 << endl;
	else
	{
		for(int i = 'a'; i <= 'z'; i++)
			pos[i].push_back(s1.size() + 1);
		for(int i = 0; i <= s2.size() - 1;)
		{
			ans++, j = *upper_bound(pos[s2[i]].begin(), pos[s2[i]].end(), -1);
			while(j < s1.size())
			{
				i++;
				if(i < s2.size()) j = *upper_bound(pos[s2[i]].begin(), pos[s2[i]].end(), j);
				else break;
			}
		}
		cout << ans << endl;
	}
	
	return 0;
}

2024/1/27 09:13
加载中...