Submission #589278

#TimeUsernameProblemLanguageResultExecution timeMemory
589278yutabiGondola (IOI14_gondola)C++14
55 / 100
29 ms4572 KiB
#include "gondola.h"


#include <bits/stdc++.h>
using namespace std;


#define pb push_back


typedef long long ll;
typedef pair <int,int> ii;


int valid(int n, int s[])
{
    set <int> st;

    int diff=-1;

    bool flag=0;

    for(int i=0;i<n;i++)
    {
        st.insert(s[i]);

        if(s[i]<=n)
        {
            int num=(s[i]+n-i)%n;

            if(diff!=-1 && diff!=num)
            {
                flag=1;
            }

            diff=num;
        }
    }

    if(st.size()!=n)
    {
        flag=1;
    }

    if(flag)
    {
        return 0;
    }

    return 1;
}

//----------------------

int replacement(int n, int ss[], int res[])
{
    vector <ii> s;

    int diff=0;

    for(int i=0;i<n;i++)
    {
        if(ss[i]<=n)
        {
            diff=(ss[i]+n-i-1)%n;
        }

        else
        {
            s.pb(ii(ss[i],i));
        }
    }

    sort(s.begin(),s.end());

    int ans=0;

    int curr=n;

    for(int i=0;i<s.size();i++)
    {
        res[ans]=((s[i].second+diff)%n)+1;
        ans++;
        curr++;

        while(curr<s[i].first)
        {
            res[ans]=curr;
            ans++;
            curr++;
        }
    }

    return ans;
}

//----------------------

int countReplacement(int n, int inputSeq[])
{
    return -3;
}

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:40:17: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   40 |     if(st.size()!=n)
      |        ~~~~~~~~~^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:80:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |     for(int i=0;i<s.size();i++)
      |                 ~^~~~~~~~~
#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...