#include //tests #include //file reading/writing #include //procedure array #include //sqrt calc. distance using namespace std; #define SIZE 300 #define COLORS 12 #define MAX_COMMANDS 90000 #define STEP 6 int N, K, C = 0; ifstream in("drawing.in"); ofstream out("drawing.out"); class Color{ public: int r=255, g=255, b=255; void setColor(int r1, int g1, int b1){ r=r1; g=g1; b=b1; } Color mix(Color sclr){ Color product; product.r=(r+sclr.r)/2; product.g=(g+sclr.g)/2; product.b=(b+sclr.b)/2; return product; } void mixClr(Color sclr){ r=(r+sclr.r)/2; g=(g+sclr.g)/2; b=(b+sclr.b)/2; } double distance(Color sclr) { double dist=sqrt(pow((r-sclr.r), 2) + pow((g-sclr.g), 2) + pow((b-sclr.b),2)); return dist; } }; class Pixel: public Color { }; class Picture { public: Pixel pixels[SIZE][SIZE]; int size=SIZE; public: void getPicture(int n){ size=n; int r, g, b; for(int i=0; i>r; pixels[i][j].r=r; } } for(int i=0; i>g; pixels[i][j].g=g; } } for(int i=0; i>b; pixels[i][j].b=b; } } } }; Picture original, robopic; int active; Color palette[COLORS]; string procedure[MAX_COMMANDS]; double initDistance; void getPalette(int n){ int r, g, b; for(int i=0; i>r>>g>>b; r=(r+255)/2; g=(g+255)/2; b=(b+255)/2; palette[i].setColor(r, g, b); } } void updatePalette(int n){ Color temp=palette[active]; for(int i=0; i> N >> K; getPalette(K); original.getPicture(N); } void printCommands(){ out<> N; for(int i=0; i> j; } } double areaDistance(int x1, int y1, int x2, int y2){ double dist=0; for(int i=x1; i> N; return 0; }