Submission #516057

#TimeUsernameProblemLanguageResultExecution timeMemory
516057antonioqbabGondola (IOI14_gondola)C++14
25 / 100
44 ms5140 KiB
#include <bits/stdc++.h>
#include <gondola.h>

using namespace std;


int valid(int n, int a[])
{
    map<int,int> mp;
    int index=-1;
    for(int i=0; i<n; ++i)
    {
        if(mp.count(a[i]))
            return 0;
        ++mp[a[i]];
    }
    for(int i=0; i<n; ++i)
        if(a[i]<=n)
        {
            index=i;
            break;
        }
    if(index==-1)
        return 1;
    int cur=a[index];
    cur=cur==n?1:cur+1;
    for(int j=(index+1)%n; j!=index; j=(j+1)%n,cur=cur==n?1:cur+1)
        if(a[j]<=n && a[j] !=cur)
            return 0;
    return 1;
}

int replacement(int n, int a[], int ans[])
{
    vector<int> real(n);
    int index=-1, sol=0;
    for(int i=0; i<n; ++i)
        if(a[i]<=n)
        {
            real[i]=a[i];
            index=i;
            break;
        }
    if(index==-1)
        return 0;
    int cur=a[index];
    cur=cur==n?1:cur+1;
    for(int j=(index+1)%n; j!=index; j=(j+1)%n,cur=cur==n?1:cur+1)
        real[j]=cur;
    vector<pair<int,int>> b;
    for(int i=0; i<n; ++i)
        if(a[i]>n)
            b.emplace_back(a[i],i);
    sort(b.begin(),b.end());
    int last=n;
    for(auto [val,idx]:b)
    {
        ans[sol++]=real[idx];
        for(int i=last+1; i<val; ++i)
            ans[sol++]=i;
        last=val;
    }
    return sol;
}

int countReplacement(int n, int T[])
{
}

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:56:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   56 |     for(auto [val,idx]:b)
      |              ^
gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:68:1: warning: no return statement in function returning non-void [-Wreturn-type]
   68 | }
      | ^
#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...