Advertisement
a53

maxvalue

a53
Jan 25th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #define nmax 100001
  4. using namespace std;
  5. char s[nmax];
  6. long long dp[nmax];
  7. int n;
  8.  
  9. int prim(int x,int y)
  10. {
  11. int n=0;
  12. for(int i=x;i<=y;++i)
  13. n=n*10+s[i]-'0';
  14. if(n<=1)
  15. return 0;
  16. if(n==2)
  17. return n;
  18. if(n%2==0)
  19. return 0;
  20. for(int i=3;i*i<=n;i+=2)
  21. if(n%i==0)
  22. return 0;
  23. return n;
  24. }
  25.  
  26. void din()
  27. {
  28. int val;
  29. dp[0]=0;
  30. for(int i=1;i<=n;++i)
  31. {
  32. dp[i]=0;
  33. for(int j=max(1,i-5);j<=i;j++)
  34. val=prim(j,i),dp[i]=max(dp[i],dp[j-1]+val);
  35. }
  36. }
  37.  
  38. int main()
  39. {
  40. cin>>(s+1);
  41. n=strlen(s+1);
  42. din();
  43. cout<<dp[n]<<'\n';
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement