fork(2) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. char arr[100001];
  6. gets(arr);
  7. int i,dp[10],temp[10];
  8. for(i = 0;i<10;i++)
  9. dp[i] = 100001;
  10. int l = strlen(arr);
  11. int flag = 1;
  12. int jump = 0;
  13. while(flag==1)
  14. {
  15. for(i = 0;i<10;i++)
  16. temp[i] = dp[i];
  17. jump = 0;
  18. flag = 0;
  19. for(i = l-1;i>=0;i--)
  20. {
  21. if(dp[arr[i]-48]==100001)
  22. dp[arr[i]-48] = jump;
  23. else
  24. {
  25. int value = dp[arr[i]-48]+1;
  26. if(jump>=value)
  27. jump = value;
  28. else
  29. dp[arr[i]-48] = jump;
  30. int tjump = jump+1;
  31. int k = 1;
  32. while(dp[arr[i+k]-48]>tjump)
  33. {
  34. dp[arr[i+k]-48] = tjump;
  35. tjump++;
  36. k++;
  37. }
  38.  
  39. }
  40. jump++;
  41. }
  42. for(i = 0;i<10;i++)
  43. if(temp[i] != dp[i])
  44. {
  45. flag = 1;
  46. break;
  47. }
  48. //for(i = 0;i<10;i++)
  49. //printf("%d ",dp[i]);
  50. //printf("\n");
  51.  
  52. }
  53. printf("%d",jump-1);
  54.  
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 2296KB
stdin
Standard input is empty
stdout
-1