9 도 OJ 1097: 중간 값 (중간 값)
메모리 제한: 32 메 가
특수 판정 문제: 아니오
제출: 5092
해결: 1411
제목 설명:
두 조 의 배열 이 존재 하고 네 개의 숫자 a, b, c, d 가 존재 합 니 다. 다음 과 같은 조작 을 요구 합 니 다. 첫 번 째 배열 의 a 번 째 숫자 를 b 번 째 숫자 까지 세 고 두 번 째 배열 의 c 번 째 숫자 에서 d 번 째 숫자 까지 한 배열 에 넣 고 합 친 배열 의 중간 값 을 구 합 니 다. 만약 에 두 개의 중간 값 이 있 으 면 표 시 된 작은 것 을 추출 합 니 다.
입력:
첫 번 째 줄 의 정수 t 는 t 개의 테스트 데이터 가 있 음 을 나타 낸다. 두 번 째 줄 의 두 정 수 는 두 배열 의 길 이 를 나타 낸다. 다음 두 줄 은 두 숫자의 값 을 나타 낸다.
마지막 줄 에는 네 개의 정수 a, b, c, d 가 있다.
배열 길 이 는 1000000 을 넘 지 않 습 니 다.
출력:
줄 마다 하나의 정수 가 합 쳐 진 배열 의 아래 표 시 된 중간 값 에 대응 합 니 다.
샘플 입력:
1
5 4
1 2 3 4 5
6 7 8 9
1 2
1 3
샘플 출력:
6
원본:
2009 년 상해교통대학 컴퓨터 연구 생기 시험
생각:
병합 알고리즘 중의 merge 과정 을 참고 하 다.
코드:
#include <stdio.h>
#define N 1000000
int a1[N], a2[N], a3[2*N];
int main(void)
{
int t, n1, n2, a, b, c, d, i, j, k;
//int a1[N], a2[N], a3[2*N];
while (scanf("%d", &t) != EOF)
{
for(i=0; i<t; i++)
{
scanf("%d%d", &n1, &n2);
for (j=0; j<n1; j++)
scanf("%d", &a1[j]);
for (j=0; j<n2; j++)
scanf("%d", &a2[j]);
scanf("%d%d", &a, &b);
scanf("%d%d", &c, &d);
for(j=a,k=0;j<=b;j++,k++)
{
a3[k]=a1[j-1];
}
for(j=c;j<=d;j++,k++)
{
a3[k]=a2[j-1];
}
printf("%d
", a3[(k-1)/2]);
}
break;
}
return 0;
}
/**************************************************************
Problem: 1097
User: liangrx06
Language: C
Result: Accepted
Time:50 ms
Memory:16540 kb
****************************************************************/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.