求调
  • 板块学术版
  • 楼主chensiyu1
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/22 23:09
  • 上次更新2025/1/23 10:26:19
查看原帖
求调
1041300
chensiyu1楼主2025/1/22 23:09

# dev-c++上运行没问题,但到洛谷上显示报错了。

#include<bits/stdc++.h>
using namespace std;
map<string,int> LW3;
int n,f,kill; string str;
string headshot[20005];
int main(){
	ios::sync_with_stdio(false),cin.tie(0);
	cin>>n>>f; cin>>str;
	for(int i=0;i<str.size();i++){
		if(i>=str.size()-21) continue;
		if(str[i+1]==str[i+2]&&str[i]!=str[i+1]){
			string x;
			x+=str[i];
			x+=str[i+1];
			x+=str[i+2];
			LW3[x]++;
		}
	} for(auto x:LW3){
		if(x.second>=f)
			headshot[++kill]=x.first;
		else if(x.second==f-1){
			for(int i=0;i<str.size();i++){
				if(str[i]==x.first[0]&&str[i+1]==x.first[1]&&str[i+2]!=x.first[2]){
					if(str[i+2]==x.first[0]&&str[i+3]==x.first[1]&&str[i+4]==x.first[2])
						continue;
					else{ headshot[++kill]=x.first;
						break; }
				} if(str[i]!=x.first[0]&&str[i+1]==x.first[1]&&str[i+2]==x.first[2]){
					if(str[i-2]==x.first[0]&&str[i-1]==x.first[1]&&str[i]==x.first[2])
						continue;
					else{ headshot[++kill]=x.first;
						break; }
				} if(str[i]==x.first[0]&&str[i+1]!=x.first[1]&&str[i+2]==x.first[2]){
					if(str[i+1]==x.first[0]&&str[i+2]==x.first[1]&&str[i+3]==x.first[2])
						continue;
					else{ headshot[++kill]=x.first;
						break; }
				}
			}
		}
	} cout<<kill<<endl; for(int i=1;i<=kill;i++) cout<<headshot[i]<<endl;
	return 0;
}
2025/1/22 23:09
加载中...