結果
問題 |
No.1007 コイン集め
|
ユーザー |
![]() |
提出日時 | 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; }