화성 인 (martian. pas / c / cpp)
(martian.pas/c/cpp)
[문제 설명]
인 류 는 마침내 화성의 땅 에 올 라 신비 한 화성 인 을 만 났 다.인간 과 화성 인 은 상대방 의 언어 를 이해 할 수 없 지만 우리 과학자 들 은 디지털 로 교류 하 는 방법 을 발명 했다.이런 교류 방법 은 이렇다. 우선 화성 인 들 은 매우 큰 숫자 를 인류 과학자 에 게 알려 주 었 다. 과학자 들 은 이 숫자의 의 미 를 풀 고 아주 작은 숫자 를 이 큰 숫자 위 에 올 려 결 과 를 화성 인 에 게 알려 인간 의 대답 으로 삼 았 다.
화성 인 들 은 손가락 을 쪼 개 는 아주 간단 한 방식 으로 숫자 를 표시 한다.화성 인 은 한 손 밖 에 없 지만 이 손 에는 수천 수만 의 손가락 이 있 는데 이 손가락 들 은 일렬 로 서서 각각 1, 2, 3 번 으로 번 호 를 매 긴 다.화성 인의 임의의 두 손가락 이 자 리 를 마음대로 바 꿀 수 있 는데, 그들 이 바로 이 방법 을 통 해 계산 한 것 이다.
화성 인 이 손가락 으로 계산 하 는 방법 을 인간 의 손 으로 보 여 주 었 다.다섯 손가락 인 엄 지, 검지, 중지, 약지, 새끼손가락 을 각각 1, 2, 3, 4, 5 로 번 호 를 매 긴 다 면 정상 적 인 순서 로 배열 할 때 5 자리 12345 가 형성 된다. 약지 와 새끼손가락 의 위 치 를 교환 할 때 5 자리 12354 가 형성 된다. 다섯 손가락 의 순 서 를 완전히 뒤 집 으 면 54321 이 형성 되 고 모든 형성 가능 한 120 개의 5 자리 에서12345 가 가장 작고 1 을 나타 낸다.12354 두 번 째 작은 것 은 2 를 나타 낸다.54321 이 가장 크 고 120 을 나타 낸다.아래 표 는 손가락 이 세 개 밖 에 없 을 때 형 성 될 수 있 는 6 개의 세 자릿수 와 이들 이 대표 하 는 숫자 를 보 여 준다.
3 진수
123
132
213
231
312
321
대표 적 인 숫자
1
2
3
4
5
6
이제 당신 은 화성 인과 교류 하 는 첫 번 째 지구 인 이 되 었 습 니 다.화성 인 이 손가락 을 보 여줄 것 이다. 과학자 가 더 해 야 할 아주 작은 숫자 를 알려 줄 것 이다.당신 의 임 무 는 화성 인 이 손가락 으로 표시 하 는 수 를 과학자 가 알려 준 수 와 더 하고 그 결과 에 따라 화성 인 손가락 의 배열 순 서 를 바 꾸 는 것 입 니 다.데 이 터 를 입력 하면 이 결 과 는 화성 인 손가락 이 표시 할 수 있 는 범 위 를 넘 지 않 을 것 이다.
[파일 입력]
입력 파일 martian. in 은 세 줄 을 포함 합 니 다. 첫 번 째 줄 에는 정수 N 이 있 습 니 다. 화성 인의 손가락 수 (1 < = N < = 10000) 를 표시 합 니 다.두 번 째 줄 은 정수 M 으로 더 할 작은 정수 (1 < = M < = 100) 를 나타 낸다.다음 줄 은 화성 인 손가락 의 배열 순 서 를 나타 내 는 1 에서 N 까지 의 정수 배열 이다.
[출력 파일]
출력 파일 martian. out 은 한 줄 뿐 입 니 다. 이 줄 은 N 개의 정 수 를 포함 하여 변 경 된 화성 인 손가락 의 배열 순 서 를 표시 합 니 다.서로 인접 한 두 개의 수 중 하 나 를 빈 칸 으로 나 누 어 여분의 빈 칸 이 있어 서 는 안 된다.
[샘플 입력]
5
3
1 2 3 4 5
[샘플 출력]
1 2 4 5 3
[데이터 규모]
30% 의 데이터 에 대해 N < = 15;
60% 의 데이터 에 대해 N < = 50;
모든 데이터 에 대해 N < = 10000;
=======================
스스로 정렬 을 만들어 야 합 니 다.
1. 포인 터 는 뒤쪽 에서 앞쪽 으로 첫 번 째 왼쪽 의 수가 오른쪽 보다 큰 위치 로 이동한다
오른쪽 위 치 를 k 로 기록 합 니 다.
2. k 위치 에서 n 위치 까지 k - 1 보다 크 고 가장 작은 수 를 찾 습 니 다.
교환 하 다.
3. k + 1 위 치 를 n 위치 사이 의 숫자 로 작은 것 부터 큰 것 까지 정렬
4. 1 - 3 과정 M - 1 회 반복.
5. 출력
==============================================
var
n,m:longint;
a:array[0..10000]of longint;
procedure init;
begin
assign(input,'p1045.in');
assign(output,'p1045.out');
reset(input); rewrite(output);
end;
procedure terminate;
begin
close(input); close(output);
halt;
end;
procedure main;
var
i,i1,j,j1,tem:longint;
k:longint;
begin
readln(n);
readln(m);
for i:=1 to n do
read(a[i]);
a[0]:=-maxlongint;
for i:=1 to m do
begin
k:=n;
while a[k-1]>a[k] do dec(k); //
j1:=k;
for j:=k+1 to n do
if a[j]>a[k-1] then if a[j]a[j1] then
begin
tem:=a[i1];
a[i1]:=a[j1];
a[j1]:=tem;
end;
end;
for i:=1 to n do
write(a[i],' ');
end;
begin
init;
main;
terminate;
end.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
화성 인 (martian. pas / c / cpp)화성 인 들 은 손가락 을 쪼 개 는 아주 간단 한 방식 으로 숫자 를 표시 한다.화성 인 은 한 손 밖 에 없 지만 이 손 에는 수천 수만 의 손가락 이 있 는데 이 손가락 들 은 일렬 로 서서 각각 1, 2, 3...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.