#include <iostream>
using namespace std;
class Rect
{
int x1, y1, x2, y2;
public:
Rect(int ax1, int ay1, int ax2, int ay2) :x1(ax1), y1(ay1), x2(ax2), y2(ay2)
{
}
bool Intersect(Rect& R) { return !(x1>R.x2 || x2<R.x1 || y1>R.y2 || y2<R.y1); }
};
int main() {
int Hit = 0, Miss = 0;
for (int i = 0; i < 100000000; i++) {
int x1 = rand() % 1001 - 500;
int x2 = rand() % 1001 - 500;
int y1 = rand() % 1001 - 500;
int y2 = rand() % 1001 - 500;
Rect PlayerBox(x1, y1, x1 + 50, y1 + 100);
Rect BulletBox(x2, y2, x2 + 10, y2 + 5);
PlayerBox.Intersect(BulletBox)?Hit++:Miss++;
}
cout << "Hits:" << Hit << " Miss:" << Miss << " Total:" << (Hit + Miss);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUmVjdAp7CglpbnQgeDEsIHkxLCB4MiwgeTI7CnB1YmxpYzoKCVJlY3QoaW50IGF4MSwgaW50IGF5MSwgaW50IGF4MiwgaW50IGF5MikgOngxKGF4MSksIHkxKGF5MSksIHgyKGF4MiksIHkyKGF5MikKCXsKCgl9Cglib29sIEludGVyc2VjdChSZWN0JiBSKSB7IHJldHVybiAhKHgxPlIueDIgfHwgeDI8Ui54MSB8fCB5MT5SLnkyIHx8IHkyPFIueTEpOyB9Cn07CgppbnQgbWFpbigpIHsKCglpbnQgSGl0ID0gMCwgTWlzcyA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwMDAwMDsgaSsrKSB7CgkJaW50IHgxID0gcmFuZCgpICUgMTAwMSAtIDUwMDsKCQlpbnQgeDIgPSByYW5kKCkgJSAxMDAxIC0gNTAwOwoJCWludCB5MSA9IHJhbmQoKSAlIDEwMDEgLSA1MDA7CgkJaW50IHkyID0gcmFuZCgpICUgMTAwMSAtIDUwMDsKCQlSZWN0IFBsYXllckJveCh4MSwgeTEsIHgxICsgNTAsIHkxICsgMTAwKTsKCQlSZWN0IEJ1bGxldEJveCh4MiwgeTIsIHgyICsgMTAsIHkyICsgNSk7CgkJUGxheWVyQm94LkludGVyc2VjdChCdWxsZXRCb3gpP0hpdCsrOk1pc3MrKzsKCX0KCgoJY291dCA8PCAiSGl0czoiIDw8IEhpdCA8PCAiIE1pc3M6IiA8PCBNaXNzIDw8ICIgVG90YWw6IiA8PCAoSGl0ICsgTWlzcyk7CgoJcmV0dXJuIDA7Cn0=