結果

問題 No.2490 Escalator
ユーザー Sillpherth
提出日時 2025-04-21 20:17:20
言語 Java
(openjdk 23)
結果
WA  
実行時間 -
コード長 1,505 bytes
コンパイル時間 2,500 ms
コンパイル使用メモリ 81,488 KB
実行使用メモリ 66,916 KB
最終ジャッジ日時 2025-04-21 20:18:06
合計ジャッジ時間 43,222 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 3
other WA * 71 TLE * 1 -- * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.*;

public class Main
{
	static boolean check(int[] S, int N)
	{
		int size = S.length;
		int[][] R = new int[2][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[0][i] = j;
			int k = 1;
			while (i-k >= 0 && k+R[0][i-k] < j)
			{
				R[0][i+k] = R[0][i-k];
				++k;
			}
			i += k; j -= k;
		}
		
		i = 0; j = 0;
		while (i < size)
		{
			while (i-j >= 0 && i+j+1 < size && ((S[i-j] == S[i+j+1]) || (S[i-j] == -1) || (S[i+j+1] == -1)))
			{
				j++;
			}
			R[1][i] = j;
			int k = 1;
			while (i-k >= 0 && k+R[1][i-k] < j)
			{
				R[1][i+k+1] = R[1][i-k];
				++k;
			}
			i += k; j = 0;
		}
		
		System.out.println(Arrays.toString(R[0]));
		System.out.println(Arrays.toString(R[1]));
		
		for(int k=0; k<size; k++)
		{
			if((2*R[0][k]-1)>N || (2*R[1][k])>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))
        {
        	System.out.println("Yes");
        } else {
        	System.out.println("No");
        }
    }
}
0