結果

問題 No.390 最長の数列
コンテスト
ユーザー kriii
提出日時 2018-04-15 20:53:27
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 39 ms / 5,000 ms
コード長 379 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 269 ms
コンパイル使用メモリ 40,640 KB
実行使用メモリ 8,704 KB
最終ジャッジ日時 2026-03-13 23:48:45
合計ジャッジ時間 1,542 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <stdio.h>

int N,X[100100],D[1001001]; bool C[1001001];

int main()
{
	int N; scanf ("%d",&N);
	for (int i=0;i<N;i++){
		int x; scanf ("%d",&x);
		C[x] = 1;
	}

	int ans = 0;
	for (int i=1;i<=1000000;i++) if (C[i]){
		D[i]++;
		if (ans < D[i])
			ans = D[i];

		for (int j=i*2;j<=1000000;j+=i) if (C[j] && D[j] < D[i]) D[j] = D[i];
	}

	printf ("%d\n",ans);
	return 0;
}
0