https://www.luogu.com.cn/problem/solution/P5587参考这个
char i:s1指的是遍历s1(很方便
定义一个string s,然后while(getline(cin,s),s!"EOF"),在定义另一个string store, 然后遍历 s ,如果等于<就清空头部(类似栈)(当然要判断他是不是空的),不是的话就压进去。然后一行一行一一对比(一一对比很奇妙,可以看一下代码
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
string s[N],t[N],s1;
long long n,m,cnt;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
while(getline(cin,s1),s1!="EOF"){
n++;
for(char i:s1)if(i=='<')
{
if(!s[n].empty())s[n].pop_back();
}
else s[n].push_back(i);
}
while(getline(cin,s1),s1!="EOF"){
if(++m>n)break;
for(char i:s1)if(i=='<')
{
if(!t[m].empty())t[m].pop_back();
}
else t[m].push_back(i);
for(int i=0;i<min(t[m].size(),s[m].size());i++)cnt+=s[m][i]==t[m][i];
}
cin>>m;
cout<<(long long)(cnt*60.0/m+0.5);
}