Submission #400989

#TimeUsernameProblemLanguageResultExecution timeMemory
400989Dan4LifeGondola (IOI14_gondola)C++17
25 / 100
48 ms4768 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;

int valid(int n, int a[])
{
    int sm = INT_MAX, pos = -1;
    map<int,int> M; M.clear();
    for(int i = 0; i < n; i++)
    {
        M[a[i]]++;
        if(M[a[i]]>=2)return 0;
    }
    for(int i = 0; i < n; i++)
        if(sm>a[i] and a[i]<=n)sm=a[i], pos=i;
    if(sm==INT_MAX)return 1;
    int x = n;
    while(x--){
        if(a[pos]==n and a[(pos+1)%n]<=n and a[(pos+1)%n]!=1)return 0;
        else if(a[pos]<n and a[(pos+1)%n]<=n and a[pos]!=a[(pos+1)%n]-1)
            return 0;
        pos++, pos%=n;
    }
    return 1;
}

int replacement(int n, int a[], int b[])
{
    map<int,int> M, N; M.clear(), N.clear();
    int mx = 0;
    for(int i = 0; i < n; i++)
        mx = max(mx, a[i]), M[a[i]]=1;
    int x = n;
    vector<int> v; v.clear();
    int pos = min_element(a, a+n)-a;
    int z = 1; while(x--) N[a[pos]]=z, z++, pos++, pos%=n;
    sort(a, a+n); x = n;
    for(int i = 1; i < a[0]; i++)v.push_back(i);
    for(int i = 1; i < n; i++)
    {
        int num = N[a[i]];
        if(num==a[i])continue;
        v.push_back(num);
        for(int j = max({a[i-1], num, n})+1; j < a[i]; j++)
            v.push_back(j);
    }
    for(int i = 0; i < mx-n; i++) b[i]=v[i];
    return mx-n;
}

int countReplacement(int n, int a[])
{
    return 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...
#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...