結果
| 問題 |
No.609 Noelちゃんと星々
|
| コンテスト | |
| ユーザー |
extelo
|
| 提出日時 | 2017-12-12 14:21:43 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 29 ms / 2,000 ms |
| コード長 | 1,286 bytes |
| コンパイル時間 | 824 ms |
| コンパイル使用メモリ | 78,124 KB |
| 最終ジャッジ日時 | 2025-01-05 05:10:33 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:62:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
62 | scanf("%d", &num);
| ~~~~~^~~~~~~~~~~~
main.cpp:68:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
68 | scanf("%lld", &data[i]);
| ~~~~~^~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>
#include <iostream>
#include <math.h>
void quick_sort(long long int *data, int left, int right)
{
int i = left;
int j = right;
int pivot = data[(left+right)/2];
while(1) {
while (data[i] < pivot) {
i++;
}
while (pivot < data[j]) {
j--;
}
if (i >= j) {
break;
}
long long int tmp = data[i];
data[i] = data[j];
data[j] = tmp;
i++;
j--;
}
if (left < i-1) {
quick_sort(data, left, i-1);
}
if (j+1 < right) {
quick_sort(data, j+1, right);
}
}
void showdata(long long int *data, int num)
{
for(int i=0; i<num; i++) {
printf("%lld\n", data[i]);
}
}
long long int move_point(long long int *data, int num)
{
long long int target = data[(num-1)/2];
long long int sum = 0;
for(int i=0; i<num; i++) {
sum += abs(data[i] - target);
}
return sum;
}
int main(void)
{
int num;
scanf("%d", &num);
long long int *data;
data = new long long int[num];
//data = (long long int *)malloc(num * sizeof(long long int));
for(int i=0; i<num; i++){
scanf("%lld", &data[i]);
//printf("%lld\n", data[i]);
}
quick_sort(data, 0, num-1);
//showdata(data, num);
long long int sum = move_point(data, num);
printf("%lld\n", sum);
return 0;
}
extelo