Submission #282453

#TimeUsernameProblemLanguageResultExecution timeMemory
282453iliccmarkoGondola (IOI14_gondola)C++14
25 / 100
37 ms4984 KiB
#include <bits/stdc++.h>
#include<gondola.h>
using namespace std;
#define ll long long
#define endl "\n"

using namespace std;

int next(int n, int tren)
{
    if(tren == n)
        return 1;
    else
        return tren + 1;
}


int valid(int n, int p[])
{
    map<int, int> m;
    m[p[0]]++;
    for(int i = 1;i<n;i++)
    {
        if(m.find(p[i])!=m.end())
            {
                //cout<<i;
                return 0;
            }
        if(p[i]==1&&p[i-1]<n)
            {
                //cout<<i;
                return 0;
            }
        else if(p[i]!=1&&p[i]-1!=p[i-1]&&p[i-1]<=n&&p[i]<=n)
            {
                //cout<<i;
                return 0;
            }
        m[p[i]]++;
    }
    return 1;
}

int replacement(int n, int qs[], int rs[])
{
    vector<pair<int, int> > seq;
    int val;
    int i = 0;
    int promena = n + 1;
    int ind = -1;;
    for(int i = 0;i<n;i++)
    {
        if(qs[i]<=n)
        {
            ind = i;
            val = qs[i];
            break;
        }
    }
    if(ind == -1)
    {
        ind = 0;
        val = 1;
    }
    int j = 0;
    for(;j<n;j++)
    {
        if(qs[j]!=val)
        {
            seq.push_back({qs[j], val});
        }
        val = next(n, val);
    }
    for(j = 0;j<ind;j++)
    {
        if(qs[j]!=val)
        {
            seq.push_back({qs[j], val});
        }
        val = next(n, val);
    }
    int ans = 0;
    sort(seq.begin(), seq.end());
    for(auto x : seq)
    {
        ans++;
        rs[i] = x.second;
        i++;
        while(promena<x.first)
        {
            ans++;
            rs[i] = promena;
            promena++;
            i++;
        }
        promena++;
    }
    return ans;
}

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