제출 #1019819

#제출 시각아이디문제언어결과실행 시간메모리
1019819NValchanov곤돌라 (IOI14_gondola)C++17
35 / 100
13 ms2316 KiB
#include <bits/stdc++.h>
#include "gondola.h"

#define endl '\n'

using namespace std;

typedef long long ll;

int valid(int n, int inputSeq[])
{
  return -1;
}

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

int replacement(int n, int a[], int ans[])
{
    int min_idx = 0;
    int maxel = 0;

    for(int i = 0; i < n; i++)
    {
        if(a[i] < a[min_idx])
            min_idx = i;
        
        maxel = max(maxel, a[i]);
    }

    vector < int > order;

    for(int i = min_idx; i < n; i++)
    {
        order.push_back(a[i]);
    }
    for(int i = 0; i < min_idx; i++)
    {
        order.push_back(a[i]);
    }

    vector < pair < int, int > > broken;

    for(int i = 0; i < n; i++)
    {
        if(order[i] > n)
            broken.push_back({order[i], i});
    }

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

    if(order.front() > n)
        order.front() = 1;

    for(int i = 1; i < n; i++)
    {
        if(order[i - 1] == n)
        {
            order[i] = 1;
        }
        else
        {
            order[i] = order[i - 1] + 1;
        }
    }

    int last = n;
    int pos = 0;

    for(pair < int, int > p : broken)
    {
        int val = p.first;
        int idx = p.second;

        while(last < val)
        {
            ans[pos++] = order[idx];
            order[idx] = ++last;
        }
    }

    return maxel - n;
}
#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...