#include #include using namespace std; struct phanso { int tuso; int mauso; }; struct danhsach { phanso ds[100]; int n; }; void Doc1PS(phanso &ps, ifstream& filein) { filein >> ps.tuso; char x; filein >> x; filein >> ps.mauso; } void DocAll(danhsach& ds, ifstream& filein) { filein >> ds.n; for (int i = 0; i < ds.n; i++) { Doc1PS(ds.ds[i], filein); cout << ds.ds[i].tuso << "/" << ds.ds[i].mauso << endl; } } int gcd(int a, int b) { while (a != b) { if (a < b) b = b - a; else if (a > b) a = a - b; } return b; } void rutgonps(danhsach ds,ofstream &fileout) { fileout.open("rutgon.txt", ios_base::out); fileout << ds.n << endl; for (int i = 0; i < ds.n; i++) { int ucln = gcd(ds.ds[i].tuso, ds.ds[i].mauso); ds.ds[i].tuso = ds.ds[i].tuso / ucln; ds.ds[i].mauso = ds.ds[i].mauso / ucln; fileout << ds.ds[i].tuso << "/" << ds.ds[i].mauso << endl; } fileout.close(); } void PSMAX(danhsach ds, ofstream& fileout2) { fileout2.open("max.txt", ios_base::out); double max = ds.ds[0].tuso / ds.ds[0].mauso * 1.0; int k=0; for (int i = 1; i < ds.n; i++) { int temp= ds.ds[i].tuso / ds.ds[i].mauso * 1.0; if (temp > max) { max = temp; k = i; } } fileout2 << ds.ds[k].tuso << "/" << ds.ds[k].mauso; fileout2.close(); } int main() { ifstream filein; danhsach phanso; filein.open("input.txt", ios_base::in); DocAll(phanso, filein); filein.close(); ofstream fileout; rutgonps(phanso, fileout); ofstream fileout2; PSMAX(phanso, fileout2); return 1; }