Source code for submission s459

Go to diff to previous submission

fl.cpp

  1. #include <cstdio>
  2. #include <vector>
  3. #include <utility>
  4. #include <cstring>
  5.  
  6. int gcd(int a, int b)
  7. {
  8. if (a == b)
  9. return a;
  10. else if (a > b)
  11. return gcd(a -b, b);
  12. else
  13. return gcd(a, b - a);
  14. }
  15.  
  16. int findlcm(int a, int b)
  17. {
  18. return a * b / gcd(a, b);
  19. }
  20.  
  21. int main()
  22. {
  23. int k, bl;
  24.  
  25. unsigned int results[10010];
  26. memset(results, 0, sizeof(results));
  27.  
  28. while (scanf("%d/%d", &bl, &k) == 2)
  29. {
  30. unsigned int result;
  31. if (results[k] > 0)
  32. {
  33. result = results[k];
  34. }
  35. else
  36. {
  37. std::vector< std::pair<int, int> > egypt;
  38. for (int i = k + 1; i <= 2 * k; i++)
  39. {
  40. int lcm = findlcm(i, k);
  41. int nom = (lcm / k) - (lcm / i);
  42. if (lcm % nom == 0)
  43. egypt.push_back(std::make_pair(lcm / nom, 1));
  44. }
  45. result = egypt.size();
  46. results[k] = result;
  47. }
  48.  
  49. printf("%u\n", result);
  50. }
  51.  
  52. return 0;
  53. }
  54.  

Diff to submission s449

fl.cpp

--- c5.s449.cteam063.fl.cpp.0.fl.cpp
+++ c5.s459.cteam063.fl.cpp.0.fl.cpp
@@ -49,3 +49,5 @@
                 printf("%u\n", result);
         }
+        
+        return 0;
 }