230532026-01-16 11:21:15AblablablaTitkos sorozatcpp17Hibás válasz 0/4063ms2728 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

struct comp{
    bool operator()(pii a, pii b){
        if(a.second == b.second){
            return a.first > b.first;
        }

        return a.second > b.second;
    }
};

int main()
{
    int n;
    cin >> n;

    vector<int> alap(n);
    for(int &x : alap){
        cin >> x;
    }

    int a = 5;
    vector<int> ans(n);
    vector<pii> hely;

    for(int i = 0; i < n; i++){
        if(alap[i] == -1){
            ans[i] = a;
            a--;
        } else{
            hely.push_back({i, alap[i] - i - 2});
        }
    }

    sort(hely.begin(), hely.end(), comp());


    for(auto x : hely){
        ans[x.first] = a;
        a--;
    }

    for(int x : ans){
        cout << x << " ";
    }
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Elfogadva0/01ms316 KiB
2Hibás válasz0/030ms1452 KiB
3Hibás válasz0/11ms316 KiB
4Hibás válasz0/11ms508 KiB
5Hibás válasz0/21ms352 KiB
6Hibás válasz0/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/259ms2716 KiB
10Hibás válasz0/261ms2712 KiB
11Hibás válasz0/259ms2708 KiB
12Hibás válasz0/259ms2728 KiB
13Hibás válasz0/259ms2728 KiB
14Hibás válasz0/263ms2720 KiB
15Hibás válasz0/257ms2712 KiB
16Hibás válasz0/359ms2712 KiB
17Hibás válasz0/361ms2712 KiB
18Hibás válasz0/359ms2728 KiB
19Hibás válasz0/359ms2728 KiB
20Hibás válasz0/359ms2728 KiB
21Hibás válasz0/154ms2472 KiB
22Hibás válasz0/154ms2472 KiB
23Hibás válasz0/152ms2476 KiB