题目描述
思路
首先,时间戳是毫秒!小于1s应该是小于1k
第一个一定算连击,别看题目很复杂,其实思路很简单:当前敲击时间-上一个敲击时间
代码
就是个模拟
注意当前若是连击断了,也是下一个连击的开始,所以要初始化1
以及求的是最大连击数,要取最大值
#include<bits/stdc++.h>
#define int long long
using namespace std;const int N = 2e5+10;int a[N];
int b[N]; //前缀和
signed main()
{//读入char a, b;int time = 0;int lasttime= 0; //第一次算一连击了int maxx = -1;int ans = 0;while(cin >> a >> b >> time){if(a == b && time - lasttime <= 1000 ){ans++;maxx = max(ans, maxx); //找最大的次数}else{ans = 1; //连击没了,从当前开始设为1}lasttime = time; //迭代相减}cout<<maxx<<endl;return 0;
}