結果

問題 No.2490 Escalator
ユーザー Sillpherth
提出日時 2025-04-21 18:38:20
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 1,164 bytes
コンパイル時間 2,088 ms
コンパイル使用メモリ 79,632 KB
実行使用メモリ 62,936 KB
最終ジャッジ日時 2025-04-21 18:38:54
合計ジャッジ時間 27,057 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 44 WA * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Main
{
	static boolean check(int[] S, int N)
	{
		int size = S.length;
		int[] R = new int[size];
		int i = 0, j = 0;
		while (i < size)
		{
			while (i-j >= 0 && i+j < size && ((S[i-j] == S[i+j]) || (S[i-j] == -1) || (S[i+j] == -1)))
			{
				++j;
			}
			R[i] = j;
			int k = 1;
			while (i-k >= 0 && k+R[i-k] < j)
			{
				R[i+k] = R[i-k];
				++k;
			}
			i += k; j -= k;
		}
		
		//System.out.println(Arrays.toString(S));
		//System.out.println(Arrays.toString(R));
		
		for(int l=0; l<size; l++)
		{
			if(R[l]>N)
			{
				return true;
			}
		}
		return false;
	}
	
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] A = new int[2*N];
        for (int i = 0; i < 2*N; i++)
        {
            A[i] = sc.nextInt();
        }
        
        int[] AA = new int[4*N];
        for (int i = 0; i < 2*N; i++)
        {
            AA[i] = A[i];
            AA[i + 2*N] = A[i];
        }
        
        if(check(AA, N/2+1))
        {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }
}
0