Cod sursa(job #882803)

Utilizator Sanduleac_VladSanduleac Vllad Alexandru Sanduleac_Vlad Data 19 februarie 2013 14:59:41
Problema Secv Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <stdio.h>

long n, nr, min;
long s[5001];

int main() {
     long i, j, k;
     freopen("secv.in", "r", stdin);
     freopen("secv.out", "w", stdout);
     scanf("%ld", &n);
     for(i = 1; i <= n; i++)
          scanf("%ld", &s[i]);
     nr = 0;
     while(true) {
          for(i = 1; i <= n; i++)
               if(s[i] >= nr)
                    break;
          if(i == n + 1)
               break;
          min = s[i];
          for(i++; i <= n; i++)
               if(s[i] < min && s[i] >= nr)
                    min = s[i];
          for(i = 1; i <= n; i++)
               if(s[i] == min)
                    s[i] = nr;
          nr++;
     }
     i = 1;
     min = n + 1;
     while(true) {
          while(s[i] != 0 && i <= n)
               i++;
          if(i == n + 1)
               break;
          j = i + 1;
          for(k = 1; k < nr; k++) {
               while(s[j] != k && j <= n)
                    j++;
               if(j > n)
                    break;
          }
          if(k != nr)
               break;
          if(j - i + 1 < min)
               min = j - i + 1;
          i++;
     }
     printf("%ld\n", min);
     return 0;
}