#include <iostream>
const double max_h = 1000.0;
static double table [] = { 136, 577, 110, 927, 472, 199, 157, 808, 388, 598, 94, 31, 388, 157, 325, 409, 787, 897, 850, 598, 0.0, 0.0 };
struct extremum {
public:
double x0, y0, h, c, S2;
int flag;
extremum() { x0 = y0 = h = c = 0.0; S2 = 1000.0 * 1000.0 + 0.1; flag = 0; }
void regist(double x0, double y0, double h, double c, double S2, int flag) {
this->x0 = x0; this->y0 = y0; this->h = h; this->c = c; this->S2 = S2; this->flag = flag;
}
double fetch() { return S2; }
void output() {
if (flag == 0) {
std::cout << '(' << x0 << ',' << y0 << "), ";
std::cout << '(' << x0 + h << ',' << y0 << "), ";
std::cout << '(' << x0 + h << ',' << y0 + h << "), ";
std::cout << '(' << x0 << ',' << y0 + h << "), ";
std::cout << "S^2 =" << S2 << std::endl;
} else if (flag > 0) {
} else {
}
}
};
extremum extremumS;
double ext_x0S = 0.0, ext_y0S = 0.0, ext_hS = 0.0, ext_cS = 0.0, ext_flagS = 0, ext_s2S = 1000.0 * 1000.0 + 0.1;
double delta = 1.0;
double f(double delta_x, double delta_y, double x1, double y1, double X, double Y) {
return delta_y * (X - x1) + delta_x * (y1 - Y);
}
void check1(double x0, double y0, double h) {
for (int i = 0; !(table[i] == 0.0 && table[i + 1] == 0.0); i += 2) {
double X = table[i], Y = table[i + 1];
if (!(X >= x0 && X <= x0 + h && Y >= y0 && Y <= y0 + h))
return;
}
double S2 = h * h;
if (S2 <= extremumS.fetch()) {
extremumS.regist(x0, y0, h, 0.0, S2, 0);
}
}
void check2(double x0, double y0, double h, double c) {
}
void check3(double x0, double y0, double h, double c) {
}
int main() {
double h;
for (h = max_h; h > 0.0; h = h - delta) {
double x0, y0;
for (x0 = 0; x0 <= max_h - h; x0 = x0 + delta) {
for (y0 = 0; y0 <= max_h - h; y0 = y0 + delta) {
check1(x0, y0, h);
/*
double c;
for (c = 0.0 + delta; c <= h / 2.0; c = c + delta)
check2(x0, y0, h, 0.0);
for (c = 0.0 + delta; c <= h / 2.0; c = c + delta)
check3(x0, y0, h, 0.0);
*/
}
}
}
extremumS.output();
return 0;
}
/* end */
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY29uc3QgZG91YmxlIG1heF9oID0gMTAwMC4wOwpzdGF0aWMgZG91YmxlIHRhYmxlIFtdID0geyAxMzYsIDU3NywgMTEwLCA5MjcsIDQ3MiwgMTk5LCAxNTcsIDgwOCwgMzg4LCA1OTgsIDk0LCAzMSwgMzg4LCAxNTcsIDMyNSwgNDA5LCA3ODcsIDg5NywgODUwLCA1OTgsIDAuMCwgMC4wIH07CgpzdHJ1Y3QgZXh0cmVtdW0gewpwdWJsaWM6CiAgZG91YmxlIHgwLCB5MCwgaCwgYywgUzI7CiAgaW50IGZsYWc7CgogIGV4dHJlbXVtKCkgeyB4MCA9IHkwID0gaCA9IGMgPSAwLjA7IFMyID0gMTAwMC4wICogMTAwMC4wICsgMC4xOyBmbGFnID0gMDsgfQogIHZvaWQgcmVnaXN0KGRvdWJsZSB4MCwgZG91YmxlIHkwLCBkb3VibGUgaCwgZG91YmxlIGMsIGRvdWJsZSBTMiwgaW50IGZsYWcpIHsKICAgIHRoaXMtPngwID0geDA7IHRoaXMtPnkwID0geTA7IHRoaXMtPmggPSBoOyB0aGlzLT5jID0gYzsgdGhpcy0+UzIgPSBTMjsgdGhpcy0+ZmxhZyA9IGZsYWc7IAogIH0KICBkb3VibGUgZmV0Y2goKSB7IHJldHVybiBTMjsgfQogIHZvaWQgb3V0cHV0KCkgewogICAgaWYgKGZsYWcgPT0gMCkgewogICAgICBzdGQ6OmNvdXQgPDwgJygnIDw8IHgwIDw8ICcsJyA8PCB5MCA8PCAiKSwgIjsKICAgICAgc3RkOjpjb3V0IDw8ICcoJyA8PCB4MCArIGggPDwgJywnIDw8IHkwIDw8ICIpLCAiOwogICAgICBzdGQ6OmNvdXQgPDwgJygnIDw8IHgwICsgaCA8PCAnLCcgPDwgeTAgKyBoIDw8ICIpLCAiOwogICAgICBzdGQ6OmNvdXQgPDwgJygnIDw8IHgwIDw8ICcsJyA8PCB5MCArIGggPDwgIiksICI7CiAgICAgIHN0ZDo6Y291dCA8PCAiU14yID0iIDw8ICBTMiA8PCBzdGQ6OmVuZGw7CiAgICB9IGVsc2UgaWYgKGZsYWcgPiAwKSB7CiAgICB9IGVsc2UgewogICAgfQogIH0KfTsKCmV4dHJlbXVtIGV4dHJlbXVtUzsKCmRvdWJsZSBleHRfeDBTID0gMC4wLCBleHRfeTBTID0gMC4wLCBleHRfaFMgPSAwLjAsIGV4dF9jUyA9IDAuMCwgZXh0X2ZsYWdTID0gMCwgZXh0X3MyUyA9IDEwMDAuMCAqIDEwMDAuMCArIDAuMTsKZG91YmxlIGRlbHRhID0gMS4wOwoKZG91YmxlIGYoZG91YmxlIGRlbHRhX3gsIGRvdWJsZSBkZWx0YV95LCBkb3VibGUgeDEsIGRvdWJsZSB5MSwgZG91YmxlIFgsIGRvdWJsZSBZKSB7CiAgcmV0dXJuIGRlbHRhX3kgKiAoWCAtIHgxKSArIGRlbHRhX3ggKiAoeTEgLSBZKTsKfQoKdm9pZCBjaGVjazEoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSBoKSB7CiAgZm9yIChpbnQgaSA9IDA7ICEodGFibGVbaV0gPT0gMC4wICYmIHRhYmxlW2kgKyAxXSA9PSAwLjApOyBpICs9IDIpIHsKICAgIGRvdWJsZSBYID0gdGFibGVbaV0sIFkgPSB0YWJsZVtpICsgMV07CiAgICBpZiAoIShYID49IHgwICYmIFggPD0geDAgKyBoICYmIFkgPj0geTAgJiYgWSA8PSB5MCArIGgpKQogICAgICByZXR1cm47CiAgfQogIGRvdWJsZSBTMiA9IGggKiBoOwogIGlmIChTMiA8PSBleHRyZW11bVMuZmV0Y2goKSkgewogICAgZXh0cmVtdW1TLnJlZ2lzdCh4MCwgeTAsIGgsIDAuMCwgUzIsIDApOwogIH0KfQoKdm9pZCBjaGVjazIoZG91YmxlIHgwLCBkb3VibGUgeTAsIGRvdWJsZSBoLCBkb3VibGUgYykgewp9Cgp2b2lkIGNoZWNrMyhkb3VibGUgeDAsIGRvdWJsZSB5MCwgZG91YmxlIGgsIGRvdWJsZSBjKSB7Cn0KCmludCBtYWluKCkgewogIGRvdWJsZSBoOwogIGZvciAoaCA9IG1heF9oOyBoID4gMC4wOyBoID0gaCAtIGRlbHRhKSB7CiAgICBkb3VibGUgeDAsIHkwOwogICAgZm9yICh4MCA9IDA7IHgwIDw9IG1heF9oIC0gaDsgeDAgPSB4MCArIGRlbHRhKSB7CiAgICAgIGZvciAoeTAgPSAwOyB5MCA8PSBtYXhfaCAtIGg7IHkwID0geTAgKyBkZWx0YSkgewogICAgICAgIGNoZWNrMSh4MCwgeTAsIGgpOwovKgogICAgICAgIGRvdWJsZSBjOwogICAgICAgIGZvciAoYyA9IDAuMCArIGRlbHRhOyBjIDw9IGggLyAyLjA7IGMgPSBjICsgZGVsdGEpCiAgICAgICAgICBjaGVjazIoeDAsIHkwLCBoLCAwLjApOwogICAgICAgIGZvciAoYyA9IDAuMCArIGRlbHRhOyBjIDw9IGggLyAyLjA7IGMgPSBjICsgZGVsdGEpCiAgICAgICAgICBjaGVjazMoeDAsIHkwLCBoLCAwLjApOwoqLwogICAgICB9CiAgICB9CiAgfQogIGV4dHJlbXVtUy5vdXRwdXQoKTsKCiAgcmV0dXJuIDA7Cn0KLyogZW5kICovCg==