結果
| 問題 |
No.45 回転寿司
|
| ユーザー |
mannshi222jp
|
| 提出日時 | 2022-02-08 22:25:25 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 1,081 bytes |
| コンパイル時間 | 268 ms |
| コンパイル使用メモリ | 29,440 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-23 18:17:12 |
| 合計ジャッジ時間 | 1,267 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 30 |
ソースコード
#include <stdio.h>
#include <stdbool.h>
int max;
int manpuku( int *s, int num, int N );
int memo[1000];
int main()
{
int N;
int s[1000];
for( int i = 0; i < 1000; i++ ) {
memo[i] = 0;
}
scanf( "%d\n", &N );
for( int i = 0; i < N -1; i++ ) {
scanf( "%d ", s + i );
}
scanf( "%d\n", s + N -1 );
printf("%d\n", manpuku( s, 0, N ) );
return 0;
}
int manpuku( int *s, int num, int N )
{
int tmp1, tmp2, tmp3, tmp4;
int a, b;
tmp1 = tmp2 = tmp3 = tmp4 = a = b = 0;
if( memo[num] != 0 ) {
return memo[num];
}
if( num >= N ) {
return 0;
}
tmp1 = s[num] + manpuku( s, num+2, N );
tmp2 = s[num] + manpuku( s, num+3, N );
tmp3 = manpuku( s, num+1, N );
tmp4 = manpuku( s, num+2, N );
a = tmp1 < tmp2 ? tmp2 : tmp1;
b = tmp3 < tmp4 ? tmp4 : tmp3;
memo[num] = a < b ? b : a;
return memo[num];
}
mannshi222jp