v 0. Pasted by slipstak2 as cpp at 2010-11-29 16:59:10 MSK and set expiration to never.

Paste will expire never.

  1. // Меньшиков. Тренировка 7.
  2. // 7А. Упорядоченные дроби [ordfrac]
  3. // Лобовая реализация
  4. // ibelyaev: 24Nov2010
  5. #include <iostream>
  6. #include <cstdio>
  7. #include <vector>
  8. #include <cstring>
  9. #include <string.h>
  10. #include <algorithm>
  11. #include <stack>
  12. #include <queue>
  13.  
  14. using namespace std;
  15.  
  16. int n;
  17. struct drob
  18. {
  19.     int ch,zn;
  20.     drob(){}
  21.     drob(int Ch, int Zn)
  22.     {
  23.         ch = Ch;
  24.         zn = Zn;
  25.     }
  26.     void output()
  27.     {
  28.         printf("%d/%d\n", ch, zn);
  29.     }
  30. };
  31. bool operator < (const drob &a, const drob &b)
  32. {
  33.     return (double)a.ch / a.zn  < (double)b.ch / b.zn;
  34. }
  35. void input()
  36. {
  37.     cin>>n;
  38. }
  39. vector<drob> mas;
  40. int gcd(int a, int b)
  41. {
  42.     if (b == 0)
  43.         return a;
  44.     return gcd(b,a%b);
  45. }
  46. void solve()
  47. {
  48.     for (int zn = 2; zn<=n; zn++)
  49.         for (int ch = 1; ch<zn; ch++)
  50.             if (gcd(ch,zn) == 1)
  51.                 mas.push_back(drob(ch,zn));
  52.     sort(mas.begin(),mas.end());
  53. }
  54. void output()
  55. {
  56.     for (int i=0;i<mas.size();i++)
  57.         mas[i].output();
  58. }
  59. int main()
  60. {
  61.     freopen("input.txt","r",stdin);
  62.     freopen("output.txt","w",stdout);
  63.    
  64.     input();
  65.     solve();
  66.     output();
  67.     return 0;
  68. }


Editing is locked.