Submission #921027

#TimeUsernameProblemLanguageResultExecution timeMemory
921027salmonAncient Books (IOI17_books)C++14
0 / 100
1 ms1524 KiB


#include <cstdio>
#include <vector>
#include <bits/stdc++.h>
using namespace std;

long long minimum_walk(vector<int> p, int s) {
    bool done[1100100];
    int N = p.size();

    int un = N;
    int soom = 0;

    int i = 0;

    /*while(un != 0){
        if(start )
    }*/
    int fre = 0;


    for(int i = 0; i < N; i++){
        if(done[i]) continue;

        if(i > fre){
            soom += 2;
        }
        else{
            if(i == p[i] && i != 0){
                soom += 2;
            }
        }

        fre = i;
        int j = p[i];
        soom += abs(j - i);
        while(j != i){
            int temp = j;
            fre = max(fre,j);
            done[j] = true;
            j = p[j];
            soom += abs(temp - j);
        }
    }

    for(int i = N - 1; i > 0; i--){
        if(p[i] != i){
            break;
        }
        soom -= 2;
    }



    return soom;
}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:12:9: warning: unused variable 'un' [-Wunused-variable]
   12 |     int un = N;
      |         ^~
books.cpp:15:9: warning: unused variable 'i' [-Wunused-variable]
   15 |     int i = 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...