#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
struct jcv_point
{
float x, y;
};
int random(int min, int max) //range : [min, max]
{
static bool first = true;
if (first)
{
srand(time(NULL)); //seeding for the first time only!
first = false;
}
return min + rand() % ((max + 1) - min);
}
int main() {
// your code goes here
int count = 8;
jcv_point p1, p2, p3;
p1.x = 325;
p1.y = 239;
p2.x = 431;
p2.y = 448;
p3.x = 640;
p3.y = 685;
float radius = 100;
std::vector<jcv_point> grid;
std::vector<int> rand_nums;
for (int i = 20; i < 1000; i++)
{
for (int j = 20; j < 1000; j++)
{
float x = (float)i;
float y = (float)j;
float distance1 = sqrt(pow(p1.x - x, 2) + pow(p1.y - y, 2));
float distance2 = sqrt(pow(p2.x - x, 2) + pow(p2.y - y, 2));
float distance3 = sqrt(pow(p3.x - x, 2) + pow(p3.y - y, 2));
if (distance1 > radius && distance2 > radius && distance3 > radius)
{
jcv_point p;
p.x = x;
p.y = y;
grid.push_back(p);
int idx = random(0, grid.size());
rand_nums.push_back(idx);
}
}
}
for (int i = 0; i < count; ++i)
{
int idx = random(0, grid.size());
float x = grid[rand_nums[idx]].x;
float y = grid[rand_nums[idx]].y;
cout<<x <<","<<y<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgamN2X3BvaW50CnsKCWZsb2F0IHgsIHk7Cn07CmludCByYW5kb20oaW50IG1pbiwgaW50IG1heCkgLy9yYW5nZSA6IFttaW4sIG1heF0KewogICAgc3RhdGljIGJvb2wgZmlyc3QgPSB0cnVlOwogICAgaWYgKGZpcnN0KQogICAgewogICAgICAgIHNyYW5kKHRpbWUoTlVMTCkpOyAvL3NlZWRpbmcgZm9yIHRoZSBmaXJzdCB0aW1lIG9ubHkhCiAgICAgICAgZmlyc3QgPSBmYWxzZTsKICAgIH0KICAgIHJldHVybiBtaW4gKyByYW5kKCkgJSAoKG1heCArIDEpIC0gbWluKTsKfQoKICAgICAgICAKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkKCSBpbnQgY291bnQgID0gODsKICAgICAgIGpjdl9wb2ludCBwMSwgcDIsIHAzOwogICAgICAgIHAxLnggPSAzMjU7CiAgICAgICAgcDEueSA9IDIzOTsKICAgICAgICBwMi54ID0gNDMxOwogICAgICAgIHAyLnkgPSA0NDg7CiAgICAgICAgcDMueCA9IDY0MDsKICAgICAgICBwMy55ID0gNjg1OwogICAgICAgIGZsb2F0IHJhZGl1cyA9IDEwMDsKICAgICAgICBzdGQ6OnZlY3RvcjxqY3ZfcG9pbnQ+ICBncmlkOwogICAgICAgIHN0ZDo6dmVjdG9yPGludD4gcmFuZF9udW1zOwoKICAgICAgICBmb3IgKGludCBpID0gMjA7IGkgPCAxMDAwOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBqID0gMjA7IGogPCAxMDAwOyBqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZsb2F0IHggPSAoZmxvYXQpaTsKICAgICAgICAgICAgICAgIGZsb2F0IHkgPSAoZmxvYXQpajsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZmxvYXQgZGlzdGFuY2UxID0gc3FydChwb3cocDEueCAtIHgsIDIpICsgcG93KHAxLnkgLSB5LCAyKSk7CiAgICAgICAgICAgICAgICBmbG9hdCBkaXN0YW5jZTIgPSBzcXJ0KHBvdyhwMi54IC0geCwgMikgKyBwb3cocDIueSAtIHksIDIpKTsKICAgICAgICAgICAgICAgIGZsb2F0IGRpc3RhbmNlMyA9IHNxcnQocG93KHAzLnggLSB4LCAyKSArIHBvdyhwMy55IC0geSwgMikpOwoKICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZTEgPiByYWRpdXMgJiYgZGlzdGFuY2UyID4gcmFkaXVzICYmIGRpc3RhbmNlMyA+IHJhZGl1cykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBqY3ZfcG9pbnQgcDsKICAgICAgICAgICAgICAgICAgICBwLnggPSB4OwogICAgICAgICAgICAgICAgICAgIHAueSA9IHk7CiAgICAgICAgICAgICAgICAgICAgZ3JpZC5wdXNoX2JhY2socCk7CiAgICAgICAgICAgICAgICAgICAgaW50IGlkeCA9IHJhbmRvbSgwLCBncmlkLnNpemUoKSk7CiAgICAgICAgICAgICAgICAgICAgcmFuZF9udW1zLnB1c2hfYmFjayhpZHgpOwoKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGlkeCA9IHJhbmRvbSgwLCBncmlkLnNpemUoKSk7CiAgICAgICAgICAgIGZsb2F0IHggID0gZ3JpZFtyYW5kX251bXNbaWR4XV0ueDsKICAgICAgICAgICAgZmxvYXQgeSA9IGdyaWRbcmFuZF9udW1zW2lkeF1dLnk7CiAgICAgICAgICAgIGNvdXQ8PHggPDwiLCI8PHk8PGVuZGw7CiAgICAgICAgfSAKICAgICAgICAKCXJldHVybiAwOwp9
280,40
123,372
666,389
309,631
253,869
823,232
543,207
26,398