제출 #1360514

#제출 시각아이디문제언어결과실행 시간메모리
1360514gvancak곤돌라 (IOI14_gondola)C++20
55 / 100
31 ms6788 KiB
#include "gondola.h"
#include <bits/stdc++.h>
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define ll long long
using namespace std;

//int gondolaSequence[100001];
//int replacementSequence[250001];

int valid(int n, int inputSeq[])
{
	int a[2*n+5];
	for (int i=0; i<n; i++) a[i]=inputSeq[i];
	map <ll,ll> m;
	m.clear();
	bool ok=0;
	int x,y;
	x=a[0]; y=0;
	for (int i=0; i<n; i++){
		m[a[i]]++;
		if (m[a[i]]>1){
			ok=1; break;
		}
		if (x>a[i]){
			x=a[i]; y=i;
		}
	}
	if (ok) return 0;
	if (x>n) return 1;
 	for (int i=0; i<n; i++) a[i+n]=a[i];
 	for (int i=y; i<y+n; i++){
 		if (x>n) x-=n;
 		if (a[i]>n || a[i]==x){
 			x++; continue;
		 }
		 ok=1; break;
		 
	 }
	 if (ok) return 0;
	 return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
	int a[2*n+5];
	for (int i=0; i<n; i++) a[i]=gondolaSeq[i];
	vector <pair<int,int> > p;
	int x=n+1,y;
	for (int i=0; i<n; i++){
		if (x>a[i]){
			x=a[i]; y=i;
		}
	}
	int b[2*n+5];
	for (int i=0; i<n; i++) b[i]=a[i];
	for (int i=0; i<n; i++) b[i+n]=b[i];
	if (x>n){
		b[0]=1; y=0; x=1;
	}
 	for (int i=y; i<y+n; i++){
 		if (x>n) x-=n;
 		if (b[i]>n || b[i]==x){
 			b[i]=x; if (i>=n) b[i-n]=x; x++; continue;
		 }
	}
//	for (int i=0; i<n; i++) cout<<b[i]<<" "; cout<<endl;
	p.clear();
	for (int i=0; i<n; i++){
		if (a[i]<=n) continue;
		p.pb(mp(a[i],b[i]));
	}
	sort(p.begin(),p.end());
	int l=0;
	if (p.size()==0) return l;
	//replacementSeq[0]=p[0].s; 
	x=n+1;
	for (int i=0; i<p.size(); i++){
		y=p[i].f; int z=p[i].s;
		while (y>=x){
			replacementSeq[l]=z; l++; z=x; x++; 
		}
	}
	
  	return l;
}

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

int countReplacement(int n, int inputSeq[])
{
  return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…