#include #include #include // #include #include #include #include #include // istringstream #include // sort #include // pair #include // DBL_MAX typedef long long ll; using namespace std; const int maxR = 5000000; bool ps[maxR-1]; // 2~maxN-1 : 0~maxN-3 //bool ov[maxR-1]; // 2~maxN-1 : 0~maxN-3 bool match(vector tgtAs, vector dCount){ for(uint i=0; i p2i; //vector primes; for(int i=0; i> N; vector As(N); vector appear(10,false); for(int i=0; i> As[i]; } for(int i=0; i excess; excess.push_back(0); for(int i=0; i0){ if(!appear[crr%10]){ excess.push_back(i); break; } crr /= 10; } } excess.push_back(maxR+1); // for(int i=0; i<100; i++){ // if(ps[i-2]){ // cout << i << " "; // } // } cout << endl; // for(int i=0; i<30; i++){ // cout << excess[i] << " "; // } cout << endl; // main // shakutori -> xx // *x-*-*---xx---... // i j int maxI = -1; for(uint i=0; i dCount(10,0); for(int j=excess[i]+1; j0){ dCount[crr%10]++; crr/=10; } } if(match(As, dCount)){ maxI = max(maxI, excess[i+1]-excess[i]-2); } } cout << maxI << endl; return 0; }