아직 계정이 없으신가요? 회원가입

Dev. Talk

반례 부탁드립니다! [21년 재직자 대회 예선] 로드 밸런서 트래픽 예측

회원사진ryucha
157 views2021-12-29 16:55


#include <iostream>
#include <vector> 

using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

struct node{
	vector<int> sub;
	int r;
	int result;
	int pos;
};

int main(int argc, char** argv) {
	int N,K,r,p,j,next_node_num;
	struct node* arr;
	
	std::cin>>N;
	std::cin>>K;
	
	arr = new node[N];
	
	//노드 구조 
	for(int i=0;i<N;i++)
	{
		std::cin>>r;
		arr[i].r = r;
		arr[i].result = 0;
		arr[i].pos = 0;
		for(int j=0;j<r;j++)
		{			
			std::cin>>p;
			arr[i].sub.push_back(p);
		}
	}
	
	//로드밸런서 결과 
	for(int i=0;i<K;i++)
	{
		j=0;
		next_node_num = 0;
		while(arr[j].r!=0) //하위 노드 체크 
		{			
			arr[j].result++;
			next_node_num = arr[j].sub.at(arr[j].pos); //다음 노드 체 크 
						
			arr[j].pos = arr[j].pos +1; //다음 노드 위치 옮김 
			if(arr[j].pos==arr[j].r)
			{
					arr[j].pos=0;
			}
									
			j = next_node_num-1;
		}
		
		arr[j].result++;
	}
		
	for(int i=0;i<N;i++)
	{
		std::cout<<arr[i].result<<" ";
	}
	
	delete[] arr;
	
	return 0;
}


서버 개수 늘어나면 문제가 생기는 것 같은데 반례 찾기가 쉽지 않네요.ㅠ 감사합니다.