Submission #960941

#TimeUsernameProblemLanguageResultExecution timeMemory
960941IUA_HasinGondola (IOI14_gondola)C++17
25 / 100
7 ms2648 KiB
#include "gondola.h"
#include <bits/stdc++.h>
 
#define endl                                "\n"
#define yeap                                cout<<"YES"<<endl
#define nope                                cout<<"NO"<<endl
#define ll                                  long long

using namespace std;

const ll N = 1e6;
ll vis[N];

int valid(int n, int inputSeq[])
{
  ll mn = 300000;
  ll mx = -1;
  ll mnind = 0;
  ll status = 1;
  for(int i=0; i<n; i++){
    ll a = inputSeq[i];
    if(a<mn){
      mn = a;
      mnind = i;
    }
    mx = max(mx, a);
    vis[a]++;
    if(vis[a]>1){
      status = -1;
    }
  }

  if((mx-mn)>=n){
    status = -1;
  }

  if(status==-1){
    return 0;
  } else {
    if(mn>=n){
      return 1;
    } else {
      ll cnt = 0;
      ll ind = mnind;
      ll temp = mn;
      while(cnt<n){
        ll temp1 = ind%n;
        if(inputSeq[temp1]<=n){
          if(inputSeq[temp1]!=temp){
            status = -1;
            break;
          }
          cnt++;
          ind++;
          temp++;
        }
      }
      if(status==-1){
        return 0;
      } else {
        return 1;
      }
    }
  }



}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
  ll mx = -1;
  for(int i=0; i<n; i++){
    ll a = gondolaSeq[i];
    vis[a] = 1;
    mx = max(mx, a);
  }
  ll cnt = 0;
  for(int i=1; i<=mx; i++){
    if(vis[i]==0){
      replacementSeq[cnt] = i;
      cnt++;
    }
  }

  // cout<<mx<<endl;
  // cout<<endl;

  return cnt;

}

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

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