답안 #292750

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
292750 2020-09-07T12:52:26 Z Saboon 고대 책들 (IOI17_books) C++17
컴파일 오류
0 ms 0 KB
//#include "books.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 10;

bool visited[maxn], root[maxn];

long long minimum_walk(vector<int> p, int s){
	int n = p.size();
	set<int> S;
	ll answer = 0;
    for (int i = 0; i < n; i++)
        answer += abs(p[i]-i);
	int tmp = 0, Max = -1;
	for (int i = 0; i < n; i++){
        if (!visited[i] and p[i] != i){
            if (i < Max)
                tmp = i;
            int x = i;
            while (!visited[x]){
                visited[x] = 1;
                Max = max(Max, x);
                x = p[x];
            }
        }
	}
	answer += 2*tmp;
	return answer;
}

int main(){
	int n, s;
	assert(2 == scanf("%d %d", &n, &s));

	vector<int> p((unsigned) n);
	for(int i = 0; i < n; i++)
		assert(1 == scanf("%d", &p[(unsigned) i]));

	long long res = minimum_walk(p, s);
	printf("%lld\n", res);

	return 0;
}

Compilation message

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:13:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   13 |     for (int i = 0; i < n; i++)
      |     ^~~
books.cpp:15:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   15 |  int tmp = 0, Max = -1;
      |  ^~~
/tmp/ccVLdrzw.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccW8Aq7z.o:books.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status