149502025-02-09 13:23:33PKBRendező robot (80 pont)cpp17Elfogadva 80/8071ms3508 KiB
#include <iostream>
#include <vector>
using namespace std;

int main() {


    int numElements;
    cin >> numElements;
    vector<int> permutation(numElements);
    for (int i = 0; i < numElements; i++) {
        cin >> permutation[i];
    }

    vector<int> position(numElements + 1);
    for (int i = 0; i < numElements; i++) {
        position[permutation[i]] = i + 1;
    }

    vector<int> isCorrectOrder(numElements + 1, 0);
    for (int i = 1; i <= numElements - 1; i++) {
        isCorrectOrder[i] = (position[i] < position[i + 1]) ? 1 : 0;
    }

    vector<int> prefixSum(numElements + 2, 0);
    for (int i = 1; i <= numElements - 1; i++) {
        prefixSum[i + 1] = prefixSum[i] + isCorrectOrder[i];
    }

    int minimumOperations = numElements - 1;

    int maxLeftCaseA = (numElements + 1) / 2;
    int maxLeftCaseB = (numElements + 2) / 2;

    for (int L = 1; L <= maxLeftCaseB; L++) {
        if (L <= maxLeftCaseA) {
            int R = numElements - L + 1;
            if (R >= L && R <= numElements) {
                if (prefixSum[R] - prefixSum[L] == (R - L)) {
                    int operations = (L - 1) + (numElements - R);
                    if (operations < minimumOperations) {
                        minimumOperations = operations;
                    }
                }
            }
        }
        if (L >= 2) {
            int R = numElements - L + 2;
            if (R >= L && R <= numElements) {
                if (prefixSum[R] - prefixSum[L] == (R - L)) {
                    int operations = (L - 1) + (numElements - R);
                    if (operations < minimumOperations) {
                        minimumOperations = operations;
                    }
                }
            }
        }
    }

    cout << minimumOperations << "\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base80/80
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms404 KiB
12Elfogadva2/21ms316 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva2/21ms316 KiB
15Elfogadva2/21ms316 KiB
16Elfogadva2/22ms556 KiB
17Elfogadva2/21ms316 KiB
18Elfogadva4/471ms3496 KiB
19Elfogadva4/471ms3508 KiB
20Elfogadva4/471ms3500 KiB
21Elfogadva4/471ms3504 KiB
22Elfogadva4/471ms3380 KiB
23Elfogadva4/471ms3384 KiB
24Elfogadva4/471ms3372 KiB
25Elfogadva4/471ms3492 KiB
26Elfogadva4/471ms3380 KiB
27Elfogadva4/471ms3392 KiB
28Elfogadva4/471ms3384 KiB
29Elfogadva4/471ms3380 KiB