結果

問題 No.12 限定された素数
ユーザー Twizz
提出日時 2017-05-20 00:47:34
言語 C++11
(gcc 4.8.5)
結果
WA  
実行時間 -
コード長 1,122 Byte
コンパイル時間 1,755 ms
使用メモリ 8,300 KB
最終ジャッジ日時 2017-05-20 00:47:40

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 147 ms
8,300 KB
02.txt AC 152 ms
8,300 KB
03.txt AC 146 ms
8,300 KB
04.txt WA -
05.txt AC 139 ms
8,296 KB
06.txt AC 148 ms
8,300 KB
07.txt AC 151 ms
8,296 KB
08.txt AC 154 ms
8,300 KB
09.txt AC 142 ms
8,300 KB
10.txt AC 142 ms
8,296 KB
system_test1.txt AC 152 ms
8,300 KB
system_test2.txt AC 151 ms
8,296 KB
system_test3.txt AC 153 ms
8,296 KB
system_test4.txt AC 152 ms
8,300 KB
system_test5.txt AC 163 ms
8,300 KB
system_test6.txt AC 156 ms
8,296 KB
system_test7.txt AC 143 ms
8,300 KB
system_test8.txt AC 144 ms
8,300 KB
system_test9.txt AC 137 ms
8,296 KB
system_test10.txt AC 146 ms
8,300 KB
system_test11.txt AC 150 ms
8,296 KB
system_test12.txt AC 146 ms
8,296 KB
system_test13.txt AC 153 ms
8,300 KB
system_test14.txt AC 150 ms
8,296 KB
テストケース一括ダウンロード

ソースコード

diff #
#include"bits/stdc++.h"

//#include<bits/stdc++.h>
using namespace std;
#define print(x) cout<<x<<endl;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define REP(i,a) for(int i=0;i<a;i++)
typedef long long ll;
const ll mod = 10000000000;

int n;
set<int>a;
int cnt[10] = {};
int MAX = 5000000;

bool dp[5000000];

bool hantei() {
	REP(i, 10) {
		if (a.count(i) == 0) {
			if (cnt[i] != 0)return false;
		}
	}
	return true;
}

bool ok() {
	REP(i, 10) {
		if (a.count(i) != 0) {
			if (cnt[i] == 0)return false;
		}
	}
	return true;
}

vector<int> prime() {
	vector<int> ret;
	for (int i = 2; i < MAX; i++)
	{
		if (dp[i]) continue;
		ret.push_back(i);
		for (int j = i + i; j < MAX; j += i)
		{
			dp[j] = true;
		}
	}
	return ret;
}

int main() {
	cin >> n;
	REP(i, n) {
		int t; cin >> t;
		a.insert(t);
	}

	vector<int>v = prime();
	REP(i, 10)cnt[i] = 0;
	int ans = -1;
	int l = 1;
	REP(i, v.size()) {
		string tm = to_string(v[i]);
		REP(j, tm.size()) {
			cnt[tm[j] - '0']++;
		}
		if (!hantei()) {
			REP(j, 10)cnt[j] = 0;
			l = v[i] + 1;
		}
		if (ok()) {
			ans = max(ans, v[i+1]-1 - l);
		}
	}
	print(ans);
	return 0;
}
0