fork download
  1. #include <stdio.h>
  2.  
  3. long get_max_profit(long n){
  4. if(n%4 != 0 || n%3 != 0) return n;
  5. return get_max_profit(n/4) + get_max_profit(n/3) + get_max_profit(n/2);
  6. }
  7.  
  8. int main(void) {
  9. long n;
  10. long *dp = malloc(sizeof(long) * 250000000);
  11. for(long i = 0; i < 250000000; i += 1) dp[i] = 0;
  12. while(scanf("%ld", &n) == 1){
  13. printf("%ld\n", get_max_profit(n));
  14. }
  15.  
  16. return 0;
  17. }
Success #stdin #stdout 0.47s 1954704KB
stdin
12
2
stdout
13
2