Submission #68731

#TimeUsernameProblemLanguageResultExecution timeMemory
68731Talant고대 책들 (IOI17_books)C++17
0 / 100
2 ms364 KiB
#include "books.h"
//#include "grader.cpp"

#include <bits/stdc++.h>

#define sc second
#define fr first
#define mk make_pair
#define pb push_back

using namespace std;

const int N = (1e6 + 5);
const int inf = (1e9 + 7);

int f;
int cur = -1,id;
int u[N];
int ans;

long long minimum_walk(vector<int> p, int s) {
      for (int i = 0; i < p.size(); i ++)
            u[p[i]] = i;

      for (int i = p.size() - 1; i >= 0; i --) {
            if (p[i] != i) {
                  if (cur == i) {
                        ans += abs(i - id);
                        swap(cur,p[i]);
                        id = i;
                  }
                  else {
                        ans += abs(u[i] - id) + abs(u[i] - i);
                        if (cur != -1)
                              swap(p[u[i]],cur);

                        cur = i;
                        swap(cur,p[i]);
                        id = i;
                  }
            }
      }
      return (ans + id);
}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:22:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for (int i = 0; i < p.size(); i ++)
                       ~~^~~~~~~~~~
#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...