Submission #1261509

#TimeUsernameProblemLanguageResultExecution timeMemory
1261509biankAncient Books (IOI17_books)C++20
50 / 100
73 ms12104 KiB
#include "books.h"
#include <bits/stdc++.h>
 
#define forsn(i, s, n) for (int i = int(s); i < int(n); i++)
#define forn(i, n) forsn(i, 0, n)
#define dforsn(i, s, n) for (int i = int(n) - 1; i >= int(s); i--)
#define dforn(i, n) dforsn(i, 0, n)
 
#define sz(x) int(x.size())
#define all(x) begin(x), end(x)
 
#define pb push_back
#define eb emplace_back
 
#define fst first
#define snd second
 
using namespace std;
 
using vi = vector<int>;
using ii = pair<int, int>;
using ll = long long;

ll minimum_walk(vi p, int /*s*/) {
    const int n = sz(p);
    vi need(n + 1, 0);
    forn(i, n) {
        need[min(i, p[i])]++;
        need[max(i, p[i])]--;
    }
    forn(i, n) need[i + 1] += need[i];
    ll ret = 0;
    dforn(i, n) {
        ret += need[i];
        if (!need[i] && ret > 0) ret += 2;
    }
    return ret;
}
#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...