加上break后反而超时?

#include<bits/stdc++.h>
using namespace std;
struct lian{
	string address,next;
	long long data;
}s1[100001],s2[100001];

int main(){
	string str;
	int n,k;
	cin>>str>>n>>k;
	int i,l;
	int j=0;
	for(i=0;i<n;i++)cin>>s1[i].address>>s1[i].data>>s1[i].next;
	for(i=0;i<n;i++){
		if(s1[i].address==str){
			s2[j].address=s1[i].address;s2[j].data=s1[i].data;s2[j].next=s1[i].next;break;
		}
	}
	while(s2[j].next!="-1"){
		for(i=0;i<n;i++){
			if(s1[i].address==s2[j].next){
				j++;s2[j].address=s1[i].address;s2[j].data=s1[i].data;s2[j].next=s1[i].next;break;
			}
		}
	}
	j++;
	for(i=k-1;i<j-j%k;i+=k){
		if(i==k-1)cout<<s2[i].address<<' '<<s2[i].data;
		else cout<<' '<<s2[i].address<<"\n"<<s2[i].address<<' '<<s2[i].data;
		for(l=1;l<k;l++){
			cout<<' '<<s2[i-l].address<<"\n"<<s2[i-l].address<<' '<<s2[i-l].data;
		}
	}
	if(j<k){
		for(i=0;i<j;i++){
			cout<<s2[i].address<<' '<<s2[i].data<<' '<<s2[i].next<<endl;
		}
	}
	else {
		for(i=j-j%k;i<j;i++){
			cout<<' '<<s2[i].address<<"\n"<<s2[i].address<<' '<<s2[i].data;
		}
		cout<<" -1"<<endl;
	}
}
请教一下大佬为什么第23行加上break后会超时,去掉后反而正确了?

#笔试题目##C/C++##题解#
全部评论

相关推荐

06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务