CCF - 201612 - 1 - 중간 수
1656 단어 알고리즘
문제 설명
하나의 정수 서열 a1, a2,...................................................................................한 서열 에 여러 개의 아래 표 시 된 서로 다른 중간 수가 존재 할 수 있 으 며, 이 중간 수의 값 은 같다. 정수 서열 을 정 합 니 다. 이 정수 서열 의 중간 값 을 찾 아 보 세 요.
입력 형식
입력 한 첫 줄 은 정수 n 을 포함 하고 정수 서열 의 개 수 를 나타 낸다. 두 번 째 줄 은 n 개의 정 수 를 포함 하고 a1, a2,..., an 을 차례대로 나타 낸다.
출력 형식
약 정 된 시퀀스 의 중간 수가 존재 하면 중간 수의 값 을 출력 합 니 다. 그렇지 않 으 면 출력 - 1 은 중간 수가 존재 하지 않 음 을 표시 합 니 다.
샘플 입력
6 2 6 5 6 3 5
샘플 출력
5
예시 설명
5 보다 작은 수도 2 개, 5 보다 큰 수도 2 개 였 다.
샘플 입력
4 3 4 6 7
샘플 출력
-1
예시 설명
서열 에 있 는 네 개의 수 는 모두 중간 수의 정 의 를 만족 시 키 지 못 한다.
샘플 입력
5
3 4 6 6 7
샘플 출력
-1
예시 설명
서열 중의 다섯 개 수 는 모두 중간 수의 정 의 를 만족 시 키 지 못 한다.
평가 용례 규모 와 약정
모든 평가 용례 에 대하 여 1 ≤ n ≤ 1000, 1 ≤ ai ≤ 1000.
문제 풀이 의 사고 방향.
개인 적 으로 vector 벡터 용 기 는 배열 보다 훨씬 유연 하고 사용 하기에 도 편리 하 다 고 생각 하기 때문에 평소에 배열 을 사용 할 때 저 는 vector 로 배열 을 대체 하 는 것 을 선택 합 니 다.먼저 한 열 수 를 입력 한 후에 정렬 하여 중간 수 를 찾 아 라.중간 수 좌우 양쪽 의 개 수 를 계산 하 는 것 은 중간 수 를 없 애 는 것 과 같다.좌우 양쪽 이 같 으 면 중간 수 를 출력 합 니 다. 그렇지 않 으 면 출력 - 1.
코드 는 다음 과 같다.
#include
#include
#include
using namespace std;
int main()
{
int n,m,middle,i;
cin>>n;
vector v(n); // n
for(i=0;i>v[i];
sort(v.begin(),v.end()); //
m=n/2;
middle=v[m]; //
int left=0,right=0;
for(i=0;imiddle)
right++;
}
if(left==right) cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.