結果

問題 No.12 限定された素数
ユーザー Twizz
提出日時 2017-05-20 00:47:34
言語 C++11
(gcc 4.8.5)
結果
WA  
実行時間 -
コード長 1122 Byte
コンパイル時間 1755 ms
使用メモリ 8300 KB

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 147 ms
8300 KB
02.txt AC 152 ms
8300 KB
03.txt AC 146 ms
8300 KB
04.txt WA -
05.txt AC 139 ms
8296 KB
06.txt AC 148 ms
8300 KB
07.txt AC 151 ms
8296 KB
08.txt AC 154 ms
8300 KB
09.txt AC 142 ms
8300 KB
10.txt AC 142 ms
8296 KB
system_test1.txt AC 152 ms
8300 KB
system_test2.txt AC 151 ms
8296 KB
system_test3.txt AC 153 ms
8296 KB
system_test4.txt AC 152 ms
8300 KB
system_test5.txt AC 163 ms
8300 KB
system_test6.txt AC 156 ms
8296 KB
system_test7.txt AC 143 ms
8300 KB
system_test8.txt AC 144 ms
8300 KB
system_test9.txt AC 137 ms
8296 KB
system_test10.txt AC 146 ms
8300 KB
system_test11.txt AC 150 ms
8296 KB
system_test12.txt AC 146 ms
8296 KB
system_test13.txt AC 153 ms
8300 KB
system_test14.txt AC 150 ms
8296 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