Submission #1135746

#TimeUsernameProblemLanguageResultExecution timeMemory
1135746HasanV11010238Gondola (IOI14_gondola)C++20
10 / 100
0 ms328 KiB
#include <bits/stdc++.h>
#include "gondola.h"
#define ll long long
using namespace std;
int valid(int n, int inputSeq[])
{
    map<int, int> ma;
    int mind = -1;
    for (int i = 0; i < n; i++){
        if (inputSeq[i] <= n){
            if (mind == -1 || inputSeq[i] < inputSeq[mind]){
                mind = i;
            }
        }
        if (ma[inputSeq[i]] > 0) return 0;
        ma[inputSeq[i]]++;
    }
    if (mind == -1) return 1;
    int va = inputSeq[mind];
    for (int i = 0; i < va - 1; i++){
        mind--;
        if (mind < 0) mind = n - 1;
    }
    for (int i = 0; i < n; i++){
        int no = (i + mind) % n;
    }
    return 1;
}


int replacement(int n, int go[], int rep[])
{
    if (!valid(n, go)) return 0;
    int mind = -1;
    for (int i = 0; i < n; i++){
        if (go[i] <= n){
            if (mind == -1 || go[i] < go[mind]){
                mind = i;
            }
        }
    }
    if (mind == -1) return 1;
    int va = go[mind];
    for (int i = 0; i < va - 1; i++){
        mind--;
        if (mind < 0) mind = n - 1;
    }
    vector<vector<int>> v; 
    for (int i = 0; i < n; i++){
        int no = (i + mind) % n;
        if (go[no] > n){
            v.push_back({go[no], i + 1});
        }
    }
    sort(v.begin(), v.end());
    int ind = 0, no = n + 1, cnt = 0;
    for (auto el : v){
        rep[ind] = el[1];
        el[1] = no;
        ind++;
        no++;
        cnt++;
        while (el[1] != el[0]){
            rep[ind] = no;
            el[1] = no;
            no++;
            ind++;
            cnt++;
        }
    }
    return cnt;
}
int countReplacement(int n, int inp[])
{
    if (!valid(n, inp)) return 0;
    return 1;
}
#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...
#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...