#include #include #include #include #include #include #include #define INF 9999999999 using namespace std; typedef long long lld; lld n, arr[100002]; lld ans = INF, len; lld MN(lld a, lld b) { if (a < b) return a; return b; } lld cnt[10]; lld CheckNew(lld nw) { lld ret = 0; if (nw == 0) { if (cnt[0] == 0) ret++; cnt[0] ++; return ret; } while (nw > 0) { if (cnt[nw%10] == 0) ret++; cnt[nw%10]++; nw/=10; } return ret; } lld Good() { lld i; lld ret = 0; for (i=0;i<10;i++) { if (cnt[i] > 0) ret++; } return ret; } void Sleep() { for (lld i=0;i<500000000;i++) { } } void Remove(lld num) { if (num == 0) { cnt[0]--; return; } while (num > 0) { cnt[num%10]--; num/=10; } return; } int main () { freopen("numbers.in", "r", stdin); freopen("numbers.out", "w", stdout); lld i, j, ii, jj, ind; lld from, to; scanf("%lld", &n); for (i=1; i<=n; i++) { scanf("%lld", &arr[i]); } lld cur = 0; from = 1; to = 0; for (i=1; i<=n; i++) { to++; cur += CheckNew(arr[i]); if (cur == 10) { do { Remove(arr[from]); ans = MN(ans, to-from+1); //cout<<"Otgovor ot "<