95求助
查看原帖
95求助
1111314
KiPPer_1215楼主2023/10/24 07:49

第11个测试点是tle……

#include<bits/stdc++.h>
using namespace std;
int n,m,p,like[100000],hate[100000],ans;
int main(){
    cin>>n>>m>>p;
    for(int i=1;i<=n;i++){
    	int a;
    	cin>>like[i]>>a;//记录每个老人喜欢的频道
    	if(hate[a]==0) {
		hate[a]=i;	//保证调频道的是最年轻的老人
		} 
	}
	int mem=p;
	while(hate[p]!=0){
		p=like[hate[p]];//直接模拟
		ans++;
		if(p==mem) {//调到初始频道说明死循环
			cout<<-1;
			return 0;
		}
	}
	cout<<ans;
	return 0;
}

2023/10/24 07:49
加载中...