結果
| 問題 | No.1007 コイン集め |
| コンテスト | |
| ユーザー |
logi
|
| 提出日時 | 2020-03-06 23:17:51 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,457 bytes |
| 記録 | |
| コンパイル時間 | 815 ms |
| コンパイル使用メモリ | 29,440 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-10-14 09:48:26 |
| 合計ジャッジ時間 | 1,459 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 11 WA * 8 |
ソースコード
#include <stdio.h>
#include <stdlib.h>
int calc_earnable_coin(int length, int* list, int start, int step);
int main(void) {
int point_num, position;
int *coin_count;
int result;
scanf("%d %d", &point_num, &position);
position--;
coin_count = (int*) malloc(sizeof(int)*point_num);
for(int i=0; i<point_num; i++) {
scanf("%d", &coin_count[i]);
//printf("%d ", coin_count[i]);
}
if(coin_count[position] == 0) {
result = 0;
} else {
int count_left = 0, count_right = 0;
count_left = calc_earnable_coin(point_num, coin_count, position-1, -1);
count_right = calc_earnable_coin(point_num, coin_count, position+1, 1);
if(coin_count[position] == 1) {
if(count_left >= count_right) {
result = count_left + coin_count[position];
} else {
result = count_right + coin_count[position];
}
} else {
result = count_left + count_right + coin_count[position];
}
}
free(coin_count);
printf("%d\n", result);
return 0;
}
int calc_earnable_coin(int length, int* list, int start, int step) {
int count=0;
if(start >= 0 || start < length) {
for(int i=start; i!=0 && i!=length; i+=step) {
count += list[i];
if(list[i] < 2) {
break;
}
}
}
return count;
}
logi