警示后人 + 求条(90pts)
  • 板块P5587 打字练习
  • 楼主canwen
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/12/1 11:19
  • 上次更新2024/12/1 13:54:32
查看原帖
警示后人 + 求条(90pts)
1284815
canwen楼主2024/12/1 11:19

毒瘤题目,注意输入的时候也可能存在 <

WA 3,求条。

写了个大聪明的指针遍历...

#include<bits/stdc++.h>
using namespace std;

const int N = 1e4 + 5;
string ans[N];
string you[N];
int n,m;
signed main(){
	ios::sync_with_stdio(time(0));
	while(getline(cin,ans[++n])&&ans[n]!="EOF"){
		for(auto i=ans[n].begin();i!=ans[n].end();){
			if(*i=='<')
				if(i==ans[n].begin()) ans[n].erase(0,1),i=ans[n].begin();
				else ans[n].erase(i-ans[n].begin(),1),ans[n].erase(i-ans[n].begin()-1,1),i=ans[n].begin()+(i-ans[n].begin()-1);
			else ++i;
		}
//		cout << ans[n] << endl;
	}
	n--;
	while(getline(cin,you[++m])&&ans[m]!="EOF"){
		for(auto i=you[m].begin();i!=you[m].end();){
			if(*i=='<')
				if(i==you[m].begin()) you[m].erase(0,1),i=you[m].begin();
				else you[m].erase(i-you[m].begin(),1),you[m].erase(i-you[m].begin()-1,1),i=you[m].begin()+(i-you[m].begin()-1);
			else ++i;
		}
//		cout << you[m] << endl;
	}
	m--;
	double T,right = 0;
	cin >> T;
	for(int i=1;i<=min(n,m);i++){
		for(int j=0;j<min(you[i].size(),ans[i].size());j++)
			if(ans[i][j]==you[i][j]) right++;
	}
	cout << round(right/(T/60.0)) << endl;
	return 0;
}
2024/12/1 11:19
加载中...