結果

問題 No.209 Longest Mountain Subsequence
ユーザー %20%20
提出日時 2018-07-29 23:45:44
言語 C
(gcc 12.3.0)
結果
WA  
実行時間 -
コード長 626 bytes
コンパイル時間 1,100 ms
コンパイル使用メモリ 31,080 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-19 04:23:15
合計ジャッジ時間 1,637 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c:3:1: warning: return type defaults to 'int' [-Wimplicit-int]
    3 | main(){
      | ^~~~
main.c: In function 'main':
main.c:4:9: warning: implicit declaration of function 'scanf' [-Wimplicit-function-declaration]
    4 |         scanf("%*d");
      |         ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
  +++ |+#include <stdio.h>
    1 | #define fr(i,n) for(int i=0;i<n;++i)
main.c:4:9: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
    4 |         scanf("%*d");
      |         ^~~~~
main.c:4:9: note: include '<stdio.h>' or provide a declaration of 'scanf'
main.c:36:17: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
   36 |                 printf("%d\n",z);
      |                 ^~~~~~
main.c:36:17: note: include '<stdio.h>' or provide a declaration of 'printf'
main.c:36:17: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
main.c:36:17: note: include '<stdio.h>' or provide a declaration of 'printf'

ソースコード

diff #

#define fr(i,n) for(int i=0;i<n;++i)
#define max(a,b) ((a)>(b)?(a):(b))
main(){
	scanf("%*d");
	int N,A[100],d[2][100][100];
	for(;~scanf("%d",&N);){
		fr(i,N)scanf("%d",A+i);
		fr(f,2){
			fr(i,N){
				fr(j,N){
					d[f][i][j]=!j;
				}
			}
			fr(i,N){
				fr(j,i){
					fr(k,j+1){
						if(A[i]-A[j]>A[j]-A[k]){
							d[f][i][j]=max(d[f][i][j],d[f][j][k]+1);
						}
					}
				}
			}
			fr(i,N/2)A[i]^=A[N-1-i]^=A[i]^=A[N-1-i];
		}
		fr(f,2){
			fr(i,N){
				fr(j,i+1){
					d[f][i][0]=max(d[f][i][0],d[f][i][j]);
				}
			}
		}
		int z=0;
		fr(i,N){
			z=max(z,d[0][i][0]+d[1][N-1-i][0]-1);
		}
		printf("%d\n",z);
	}
}
0