Submission #1350778

#TimeUsernameProblemLanguageResultExecution timeMemory
1350778ElayV13Gondola (IOI14_gondola)C++20
25 / 100
9 ms1880 KiB
#include "gondola.h"
#include "bits/stdc++.h"
using namespace std;

int valid(int n,int inputSeq[])
{
      vector<int>all;
      for(int i=0;i<n;i++) all.push_back(inputSeq[i]);
      for(int i=0;i<n;i++) all.push_back(inputSeq[i]);
      int mn=*min_element(all.begin(),all.end());
      int one=-1;
      for(int i=0;i<all.size();i++){
            if(all[i]==mn){
                  one=i;
                  break;
            }
      }
      int cur=one,val=1;
      for(int i=1;i<=n;i++){
            if(all[cur]!=val) return 0;
            ++cur;
            ++val;
      }
      return 1;
}

int replacement(int n,int gondolaSeq[],int replacementSeq[])
{
      vector<int>vec(n,-1);
      for(int i=0;i<n;i++) if(gondolaSeq[i]<=n) vec[i]=gondolaSeq[i];
      vector<bool>used(n+1,0);
      for(int i=0;i<n;i++) if(vec[i]!=-1) used[vec[i]]=1;
      int p=0;
      for(int i=1;i<=n;i++){
            if(!used[i]){
                  while(vec[p]!=-1) ++p;
                  vec[p]=i;
            }
      }
      vector<pair<int,int>>srt;
      for(int i=0;i<n;i++){
            if(vec[i]!=gondolaSeq[i]) srt.push_back({gondolaSeq[i],i});
      }
      sort(srt.begin(),srt.end());
      int cur=n+1;
      int po=0;
      for(int i=0;i<srt.size();i++){
            int id=srt[i].second;
            int val=srt[i].first;
            for(int j=cur;j<=val;j++){
                  replacementSeq[po++]=vec[id];
                  vec[id]=cur++;
            }
      }
      return po;
}

int countReplacement(int n,int inputSeq[])
{

}

Compilation message (stderr)

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:61:1: warning: no return statement in function returning non-void [-Wreturn-type]
   61 | }
      | ^
#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...