#include <iostream>
using namespace std;
int f1(int k1, int n,int m) {
int b, g;
for (g = n; g * m % n != 0 || (b = g * m / n) + g < k1; g++);
return b + g ;
}
int f2(int k1, int n,int m) {
int b,g;
for (g = n; g * m % n != 0 || (b = g * m / n) + g < k1; g++);
return b;
}
int f3(int k1, int n,int m) {
int b,g;
for (g = n; g * m % n != 0 || (b = g * m / n) + g < k1; g++);
return g;
}
int F1(int k1,int k2, int m,int n ) {
int x = 0, y = 0, M = 10001;
for(int i = 0; i <= k2; i++){
for(int j = k1-i; j <= k2; j++){ //j=k1-i, так как сумма i+j должна быть хотя бы k1. Рассматривать варианты меньше, смысла не имеет
if(M > i + j && i * n == j * m && k1 <= i + j && i + j <= k2 && i>=m && j>=n){
x = i;
y = j;
M = i+j;
}
}
}
return x + y;
}
int F2(int k1,int k2, int m,int n ) {
int x = 0, y = 0, M = 10001;
for(int i = 0; i <= k2; i++){
for(int j = k1-i; j <= k2; j++){ //j=k1-i, так как сумма i+j должна быть хотя бы k1. Рассматривать варианты меньше, смысла не имеет
if(M > i + j && i * n == j * m && k1 <= i + j && i + j <= k2 && i>=m && j>=n){
x = i;
y = j;
M = i+j;
}
}
}
return x;
}
int F3(int k1,int k2, int m,int n ) {
int x = 0, y = 0, M = 10001;
for(int i = 0; i <= k2; i++){
for(int j = k1-i; j <= k2; j++){ //j=k1-i, так как сумма i+j должна быть хотя бы k1. Рассматривать варианты меньше, смысла не имеет
if(M > i + j && i * n == j * m && k1 <= i + j && i + j <= k2 && i>=m && j>=n){
x = i;
y = j;
M = i+j;
}
}
}
return y;
}
int main() {
int a=100, b=400, c=20,d=101;
for(int i=50;i<=a; i++){
for(int j=i; j<=b; j++){
for(int u=50; u<c; u++){
for(int k=100; k<d; k++){
if((F1(i,j,u,k)!=f1(i,u,k) ||F2(i,j,u,k)!=f2(i,u,k)||F3(i,j,u,k)!=f3(i,u,k)) && F2(i,j,u,k)*u==F3(i,j,u,k)*k && F2(i,j,u,k)!=0){
cout<<i<<" "<<j<<" "<<u<<" "<<k<<" ";
i=a;
j=b;
u=c;
k=d;
}
}
}
}
}
//cout<< F2(3,3,1,1)<<F3(3,3,1,1);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGYxKGludCBrMSwgaW50IG4saW50ICBtKSB7CglpbnQgIGIsIGc7CiAgICBmb3IgKGcgPSBuOyBnICogbSAlIG4gIT0gMCB8fCAoYiA9IGcgKiBtIC8gbikgKyBnIDwgazE7IGcrKyk7CiAgICByZXR1cm4gYiArIGcgOwp9CgppbnQgZjIoaW50IGsxLCBpbnQgbixpbnQgIG0pIHsKCWludCAgYixnOwogICAgZm9yIChnID0gbjsgZyAqIG0gJSBuICE9IDAgfHwgKGIgPSBnICogbSAvIG4pICsgZyA8IGsxOyBnKyspOwogICAgcmV0dXJuIGI7Cn0KCmludCBmMyhpbnQgazEsIGludCBuLGludCAgbSkgewoJaW50ICBiLGc7CiAgICBmb3IgKGcgPSBuOyBnICogbSAlIG4gIT0gMCB8fCAoYiA9IGcgKiBtIC8gbikgKyBnIDwgazE7IGcrKyk7CiAgICByZXR1cm4gZzsKfQogCmludCBGMShpbnQgazEsaW50IGsyLCBpbnQgbSxpbnQgbiApIHsKCQoJaW50IHggPSAwLCB5ID0gMCwgTSA9IDEwMDAxOyAKCglmb3IoaW50IGkgPSAwOyBpIDw9IGsyOyBpKyspewoJCWZvcihpbnQgaiA9IGsxLWk7IGogPD0gazI7IGorKyl7IC8vaj1rMS1pLCDRgtCw0Log0LrQsNC6INGB0YPQvNC80LAgaStqINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRhdC+0YLRjyDQsdGLIGsxLiDQoNCw0YHRgdC80LDRgtGA0LjQstCw0YLRjCDQstCw0YDQuNCw0L3RgtGLINC80LXQvdGM0YjQtSwg0YHQvNGL0YHQu9CwINC90LUg0LjQvNC10LXRggogICAgICAgICAgICBpZihNID4gaSArIGogJiYgaSAqIG4gPT0gaiAqIG0gICYmICBrMSA8PSBpICsgaiAmJiBpICsgaiA8PSBrMiAmJiBpPj1tICYmIGo+PW4peyAKCQkJCXggPSBpOyAKCQkJCXkgPSBqOwoJCQkJTSA9IGkrajsKCQkJfQoJCX0KCX0JCglyZXR1cm4geCArIHk7Cn0KIAppbnQgRjIoaW50IGsxLGludCBrMiwgaW50IG0saW50IG4gKSB7CgkKCWludCB4ID0gMCwgeSA9IDAsIE0gPSAxMDAwMTsgCgogCglmb3IoaW50IGkgPSAwOyBpIDw9IGsyOyBpKyspewoJCWZvcihpbnQgaiA9IGsxLWk7IGogPD0gazI7IGorKyl7IC8vaj1rMS1pLCDRgtCw0Log0LrQsNC6INGB0YPQvNC80LAgaStqINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRhdC+0YLRjyDQsdGLIGsxLiDQoNCw0YHRgdC80LDRgtGA0LjQstCw0YLRjCDQstCw0YDQuNCw0L3RgtGLINC80LXQvdGM0YjQtSwg0YHQvNGL0YHQu9CwINC90LUg0LjQvNC10LXRggogICAgICAgICAgICBpZihNID4gaSArIGogJiYgaSAqIG4gPT0gaiAqIG0gICYmICBrMSA8PSBpICsgaiAmJiBpICsgaiA8PSBrMiAmJiBpPj1tICYmIGo+PW4peyAKCQkJCXggPSBpOyAKCQkJCXkgPSBqOwoJCQkJTSA9IGkrajsKCQkJfQoJCX0KCX0JCglyZXR1cm4geDsKfQogCmludCBGMyhpbnQgazEsaW50IGsyLCBpbnQgbSxpbnQgbiApIHsKCQoJaW50IHggPSAwLCB5ID0gMCwgTSA9IDEwMDAxOyAKCglmb3IoaW50IGkgPSAwOyBpIDw9IGsyOyBpKyspewoJCWZvcihpbnQgaiA9IGsxLWk7IGogPD0gazI7IGorKyl7IC8vaj1rMS1pLCDRgtCw0Log0LrQsNC6INGB0YPQvNC80LAgaStqINC00L7Qu9C20L3QsCDQsdGL0YLRjCDRhdC+0YLRjyDQsdGLIGsxLiDQoNCw0YHRgdC80LDRgtGA0LjQstCw0YLRjCDQstCw0YDQuNCw0L3RgtGLINC80LXQvdGM0YjQtSwg0YHQvNGL0YHQu9CwINC90LUg0LjQvNC10LXRggogICAgICAgICAgICBpZihNID4gaSArIGogJiYgaSAqIG4gPT0gaiAqIG0gICYmICBrMSA8PSBpICsgaiAmJiBpICsgaiA8PSBrMiAmJiBpPj1tICYmIGo+PW4peyAKCQkJCXggPSBpOyAKCQkJCXkgPSBqOwoJCQkJTSA9IGkrajsKCQkJfQoJCX0KCX0JCglyZXR1cm4geTsKfQoKaW50IG1haW4oKSB7CglpbnQgYT0xMDAsIGI9NDAwLCBjPTIwLGQ9MTAxOwoJZm9yKGludCBpPTUwO2k8PWE7IGkrKyl7CgkJZm9yKGludCBqPWk7IGo8PWI7IGorKyl7CgkJCWZvcihpbnQgdT01MDsgdTxjOyB1KyspewoJCQkJZm9yKGludCBrPTEwMDsgazxkOyBrKyspewoJCQkJCWlmKChGMShpLGosdSxrKSE9ZjEoaSx1LGspIHx8RjIoaSxqLHUsaykhPWYyKGksdSxrKXx8RjMoaSxqLHUsaykhPWYzKGksdSxrKSkgJiYgRjIoaSxqLHUsaykqdT09RjMoaSxqLHUsaykqayAmJiBGMihpLGosdSxrKSE9MCl7CgkJCQkJCWNvdXQ8PGk8PCIgIjw8ajw8IiAiPDx1PDwiICI8PGs8PCIgIjsKCQkJCQkJaT1hOwoJCQkJCQlqPWI7CgkJCQkJCXU9YzsKCQkJCQkJaz1kOwoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCQoJfQoJCS8vY291dDw8IEYyKDMsMywxLDEpPDxGMygzLDMsMSwxKTsKCQlyZXR1cm4gMDsKCn0=