# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
28485 | 핑응핑응 홍신정 (#68) | 포도주 시음 (FXCUP2_wine) | C11 | 109 ms | 5804 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
long long int t[300000];
long long int temp[300000];
void merge(long long int A[], int low, int high) {
int mid = (low + high) / 2;
int i = low, j = mid + 1, k = low;
while (i <= mid && j <= high) {
if (A[i]<A[j]) {
temp[k++] = A[i++];
}
else {
temp[k++] = A[j++];
}
}
for (; i <= mid; i++) {
temp[k++] = A[i];
}
for (; j <= high; j++) {
temp[k++] = A[j];
}
for (i = low; i <= high; i++)
A[i] = temp[i];
}
void mergesort(long long int A[], int low, int high) {
int mid = (low + high) / 2;
if (high>low) {
mergesort(A, low, mid);
mergesort(A, mid + 1, high);
merge(A, low, high);
}
}
int main() {
int num, k, i;
int start = 0, end;
long long int flavor = 0, tmp=0;
int flag = 1;
scanf("%d %d", &num, &k);
for (i = 0; i < num; i++) {
scanf("%lld", &t[i]);
}
mergesort(t, 0, num - 1);
end = num-1;
while (k--) {
if (flag == 1) {
flavor += (t[end--]-tmp);
flag = 0;
}
else {
tmp = t[start++];
flag = 1;
}
}
printf("%lld", flavor);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |