Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <set>
- #include <vector>
- #include <utility>
- #include <algorithm>
- #include <string>
- using namespace std;
- int gcd(int a, int b) {
- return b ? gcd(b, a % b) : a;
- }
- int main() {
- vector <pair<double, string>> a;
- double n, p, q;
- cin >> n >> p >> q;
- set<double> s;
- for (double j = n; j >= 1; j--) {
- for (double i = 1; i <= n; i++) {
- int d = gcd(i, j);
- double i1 = i / d;
- double j1 = j / d;
- if (1 / p < i1 / j1 && i / j1 < 1 / q && s.find(i1 / j1) == s.end()) {
- s.insert(i1 / j1);
- int n1 = i1;
- int n2 = j1;
- a.push_back(pair<double, string>(i1 / j1, to_string(n1) + "/" + to_string(n2)));
- }
- }
- }
- sort(a.begin(), a.end());
- for (int i = 0; i < a.size(); i++)
- cout << a[i].second << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement