第三个测试点RE,求大佬解答
查看原帖
第三个测试点RE,求大佬解答
1015875
A2861277966楼主2025/2/3 16:57
#include<iostream>
#include <cmath>
#include<string.h>
using namespace std;
int main()
{
	string a,b,x="",y="";
	float time,sum=0;
	string::iterator it;
	while(getline(cin,a))
	{
		if(a=="EOF")break;
		//if(a=="")continue;
		a='~'+a;
		for(it=a.begin() ; it!=a.end() ; it++)
		{
			if(*it=='<')
			{
				if(*(it-1) == '~')
				{
					it = a.erase(it);
					it--;	
				}
				else
				{
					it = a.erase(it);
					it = a.erase(it-1);
					it--;
				}
			}
		}
		x=x+a;
	}
	while(getline(cin,b))
	{
		if(b=="EOF")break;
		b='~'+b;
		for(it=b.begin() ; it!=b.end() ; it++)
		{
			if(*it=='<')
			{
				if(*(it-1) == '~')
				{
					it = b.erase(it);
					it--;	
				}
				else
				{
					it = b.erase(it);
					it = b.erase(it-1);
					it--;
				}
			}
		}
		y=y+b;
	}
	cin>>time;
	int j=0,i=0;
	while(i<x.size())
	{
		if(x[i]=='~' && y[j]=='~')
		{
			i++;j++;
			while(x[i]!='~' && y[j]!='~' && i<x.size())
			{
				if(x[i]==y[j])sum++;
				i++;j++;
			}
		}
		if(x[i]=='~' && y[j]!='~')j++;
		if(y[j]=='~' && x[i]!='~')i++;
	}
	cout<<round(sum*60/time)<<endl;

}

2025/2/3 16:57
加载中...