Submission #566287

#TimeUsernameProblemLanguageResultExecution timeMemory
566287sofapuden고대 책들 (IOI17_books)C++14
0 / 100
1 ms340 KiB
#include "books.h"
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll minimum_walk(vector<int> p, int s) {
	ll su = 0;
	int mx = 0;
	int n = p.size();
	vector<int> vis(n,0);
	vector<int> cnt(n+1,0);
	ll ans = 0;
	int cn = 0;
	vector<vector<int>> gr(n+1);
	for(int i = 0; i < n; ++i){
		if(!vis[i]){
			cn++;
			while(!vis[i]){
				ans+=abs(i-p[i]);
				vis[i] = cn;
				cnt[cn]++;
				i = p[i];
			}
		}
	}
	int dif = 0;
	vector<int> cnt2(n+1,0);
	for(int i = 0; i < n; ++i){
		if(!cnt2[vis[i]]++)dif++;
		if(cnt2[vis[i]] == cnt[vis[i]])dif--;
		if(!dif)ans+=2;
	}
	return ans-2;
}

Compilation message (stderr)

books.cpp: In function 'll minimum_walk(std::vector<int>, int)':
books.cpp:9:5: warning: unused variable 'su' [-Wunused-variable]
    9 |  ll su = 0;
      |     ^~
books.cpp:10:6: warning: unused variable 'mx' [-Wunused-variable]
   10 |  int mx = 0;
      |      ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...