結果
| 問題 | 
                            No.209 Longest Mountain Subsequence
                             | 
                    
| コンテスト | |
| ユーザー | 
                             %20
                         | 
                    
| 提出日時 | 2018-07-29 23:45:44 | 
| 言語 | C  (gcc 13.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 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | WA * 6 | 
コンパイルメッセージ
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'
            
            ソースコード
#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);
	}
}
            
            
            
        
            
%20