30分求助
  • 板块P5587 打字练习
  • 楼主Amy28
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/8 18:15
  • 上次更新2023/10/27 16:25:08
查看原帖
30分求助
300828
Amy28楼主2022/8/8 18:15
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;
stack<char> a[10010],b,a1,b1;
char s[100010];
long long num;
double t;
long long cnt=1,cnt2=1;
long long ans; 
int main()
{
	while(gets(s))
	{
		num=strlen(s);
		if(s[0]=='E')
        {
            break;
        }
		for(int i=0;i<num;i++)
		{
			if(s[i]=='<'&&!a[cnt].empty())
			{
				a[cnt].pop();
			}
			else if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||s[i]==' '||s[i]=='.')
			{
				a[cnt].push(s[i]);
			}
		}
		cnt++;
	}
	while(gets(s))
	{
		if(s[0]=='E')
        {
            cnt2--;
            break;
        }
		num=strlen(s);
		for(int i=0;i<num;i++)
		{
			if(s[i]=='<'&&!b.empty())
			{
				b.pop();
			}
			else if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')||s[i]==' '||s[i]=='.')
			{
				b.push(s[i]);
			}
		}
		while(!a[cnt2].empty())
		{
			a1.push(a[cnt2].top());
			a[cnt2].pop();
		}
		while(!b.empty())
		{
			b1.push(b.top());
			b.pop();
		}
		num=min(a1.size(),b1.size());
		for(int i=1;i<=num;i++)
		{
			if(a1.top()==b1.top())
			{
				ans++;
			}
			a1.pop();
			b1.pop();
		}
		cnt2++;
	}
	scanf("%lf",&t);
    ans=ans*60.0/t+0.5;
	printf("%lld\n",ans);
	return 0;
}
2022/8/8 18:15
加载中...