题解 | #代理服务器#

代理服务器

https://www.nowcoder.com/practice/1284469ee94a4762848816a42281a9e0

//用能访问的最远的服务器的代理服务器
#include <iostream>
using namespace std;

struct server{
	string ip;
	int far;//代理服务器能到达的最远的服务器的下标

};

int main()
{
	int n,m;
	while(cin>>n)
	{
		server dl[n+1];
		for(int i=1;i<=n;i++)
	{
		cin>>dl[i].ip;
	}
		cin>>m;
		server fwq[m+1];
		for(int i=1;i<=m;i++)
		{
			cin>>fwq[i].ip;
		}

		int fuhe=1;
		//考虑没有符合要求的安排方式的情况
		if(n==1)
		{
			for(int j=1;j<=m;j++)
			{
				if(dl[1].ip==dl[j].ip)
				{
					cout<<"-1"<<endl;
					fuhe=0;
					break;
				}
			}	
		}
			
		//考虑有符合要求的安排方式的情况
		int s=-1;
		int xb=1;//当前访问到的服务器下标
		int flag=0;//为1代表已经有代理服务器可以访问剩余所有服务器了
		while(xb<=m&&fuhe==1)
		{
			s++;
				for(int i=1;i<=n&&(flag==0);i++)//更新far
				{
					int j=xb;//从当前服务器的下标开始算
					while(dl[i].ip!=fwq[j].ip)
					{
						j++;
						if(j==m+1)
						{
							flag=1;
							break;
						}
					}
					dl[i].far=j;
				}
				if(flag==1)
				{
					xb=m+1;
					continue;
				}

				xb=dl[1].far;//下标不能是0
				for(int i=1;i<=n;i++)
				{
					if(dl[i].far>xb)xb=dl[i].far;
				}			
		}
		if(fuhe==1)
		cout<<s<<endl;
	}
}

全部评论

相关推荐

最近又搬回宿舍了,在工位坐不住,写一写秋招起伏不断的心态变化,也算对自己心态的一些思考表演式学习从开始为实习准备的时候就特别焦虑,楼主一开始选择的是cpp后端,但是24届这个方向已经炸了,同时自己又因为本科非92且非科班,所以感到机会更加迷茫。在某天晚上用java写出hello&nbsp;world并失眠一整晚后选择老本行干嵌入式。理想是美好的,现实情况是每天忙但又没有实质性进展,总是在配环境,调工具,顺带还要推科研。而这时候才发现自己一直在表演式学习,徘徊在设想如何展开工作的循环里,导致没有实质性进展。现在看来当时如果把精力专注在动手写而不是两只手端着看教程,基本功或许不会那么差。实习的焦虑5月,楼主...
耶比:哲学上有一个问题,玛丽的房间:玛丽知道眼睛识别色彩的原理知道各种颜色,但是她生活在黑白的房间里,直到有一天玛丽的房门打开了她亲眼看到了颜色,才知道什么是色彩。我现在最大可能的减少对非工作事情的思考,如果有一件事困扰了我, 能解决的我就直接做(去哪里或者和谁吵架等等……),解决不了的我就不想了,每一天都是最年轻的一天,珍惜今天吧
投递比亚迪等公司10个岗位 > 秋招被确诊为…… 牛客创作赏金赛
点赞 评论 收藏
分享
accaacc:2到4k,不是2k到4k,所以年薪是30块
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务