제출 #732191

#제출 시각아이디문제언어결과실행 시간메모리
732191Koful123Političari (COCI20_politicari)C++17
30 / 70
21 ms8504 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define ff first
#define ss second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()

void solve(){

	int n,k;
	cin >> n >> k; --k;

	vector<vector<int>> v(n),vis(n);
	for(int i = 0; i < n; i++){
		v[i].assign(n,0); vis[i].assign(n,-1);
		for(int j = 0; j < n; j++){
			cin >> v[i][j];
		}
	}

	vector<int> cyc(1,0);

	int last = 0,cur = 1;
	while(vis[last][cur] == -1){
		vis[last][cur] = cyc.size() - 1;
		cyc.push_back(cur);
		int tmp = last; last = cur;
		cur = v[cur][tmp] - 1;	
	}

	assert(k <= 1e5);

	cyc.pop_back();
	if(k <= vis[last][cur]){
		cout << 1 + cyc[vis[last][cur]] << endl;
		return;
	}

	else k -= vis[last][cur];

	vector<int> nw;
	for(int i = vis[last][cur]; i < cyc.size(); i++){
		nw.push_back(cyc[i]);
	}

	cout << 1 + nw[k % nw.size()] << endl;
}
 
signed main(){ 

	ios::sync_with_stdio(0);
	cin.tie(0);
 
	int t = 1;
//	cin >> t;
 
	while(t--)
		solve();
 	
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

politicari.cpp: In function 'void solve()':
politicari.cpp:45:32: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |  for(int i = vis[last][cur]; i < cyc.size(); i++){
      |                              ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...