Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. static const unsigned long cache[] = {
  6. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 13, 14, 15, 17, 17, 19, 19, 21, 22, 23, 23, 27, 27, 27, 28, 30, 30, 32, 32, 35, 36, 36, 36, 41, 41, 41, 41, 44, 44, 46, 46, 48, 49, 49, 49, 57, 57, 57, 57, 57, 57, 60, 60, 63, 63, 63, 63, 68, 68, 68, 69, 74, 74, 76, 76, 76, 76, 76, 76, 87, 87, 87, 87, 87, 87, 87, 87, 92, 93, 93, 93, 98, 98, 98, 98, 101, 101, 104, 104, 104, 104, 104, 104, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 129, 129, 129, 129, 134, 134, 134, 134, 134, 134, 134, 134, 144, 144, 144, 144, 144, 144, 147, 147, 155, 155, 155, 155, 160, 160, 160, 161, 161, 161, 161, 161, 161, 161, 161, 161, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 193, 193, 197, 197, 197, 197, 197, 197, 207, 207, 207, 207, 207, 207, 207, 207, 212, 212, 212, 212, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 250, 250, 250, 250, 250, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 276, 276, 276, 276, 276, 276, 276, 276, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 304, 304, 304, 305, 305, 305, 305, 305, 305, 305, 305, 305, 314, 314, 314, 314, 327, 327, 327, 327, 327, 327, 327, 327, 337, 337, 337, 337, 337, 337, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 391, 391, 391, 391, 391, 391, 391, 391, 391, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 405, 405, 405, 405, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 447, 447, 447, 447, 447, 447, 447, 447, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 473, 473, 473, 473, 473, 473, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 533, 533, 533, 533, 533, 533, 533, 533, 533, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 603, 641, 641, 641, 641, 641, 641, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 668, 668, 668, 668, 668, 668, 668, 668, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 689, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 724, 724, 724, 724, 724, 724, 724, 724, 724, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 830, 851, 851, 851, 851, 851, 851, 851, 851, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 994, 994, 994, 994, 994, 994, 994, 994, 994, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1258, 1258, 1258, 1258, 1258, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
  7. };
  8.  
  9. unsigned long determine_max_value(unsigned long coins)
  10. {
  11.     unsigned long n2 = coins / 2;
  12.     unsigned long n3 = coins / 3;
  13.     unsigned long n4 = coins / 4;
  14.  
  15.     if (coins >= 0 && coins <= 1000)
  16.         return cache[coins];
  17.  
  18.     if (n2 + n3 + n4 > coins)
  19.     {
  20.         /* See if we can split the subdenominations any further. */
  21.         n2 = determine_max_value(n2);
  22.         n3 = determine_max_value(n3);
  23.         n4 = determine_max_value(n4);
  24.  
  25.         return n2 + n3 + n4;
  26.     }
  27.     else
  28.         return coins;
  29. }
  30.  
  31. int main(void)
  32. {
  33.     unsigned long coins;
  34.  
  35.     while (scanf("%lu", &coins) == 1)
  36.     {
  37.         unsigned long result = determine_max_value(coins);
  38.  
  39.         printf("%lu\n", result);
  40.     }
  41.  
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement