#include "cielib.h"
using namespace std;
int main()
{
int d, r,k,p,pr,res;
r = podajR();
d = podajD();
k = podajK();
int* t = new int[d];
int* t2 = new int[d];
int* tab = new int[d];
p = r;
pr = p % 2;
p = p / 2;
pr = pr + p;
for (int a = 0; a < d; a++)
{
tab[a] = 3;
t[a] = pr;
t2[a] = pr;
}
int flaga = 0;
if (r % 2)
flaga = 1;
while (p > 0)
{
for (int a=0;a<d;a++)
{
if (tab[a] != 0)
{
t2[a] = t[a] + p;
res = czyCieplo(t2);
k--;
t2[a] = t[a] - p;
res = czyCieplo(t2);
k--;
if (res)
tab[a] = 1;
else
{
t2[a] = t[a] + p;
res = czyCieplo(t2);
k--;
if (res)
tab[a] = 2;
else
tab[a] = 0;
}
}
}
pr = p % 2;
p = p / 2;
pr = pr + p;
for (int a=0;a<d;a++)
{
if (tab[a] == 1)
t[a] = t[a] - pr;
if (tab[a] == 2)
t[a] = t[a] + pr;
t2[a] = t[a];
}
}
if (flaga && k >= d * 3)
{
p = 1;
pr = 1;
for (int a=0;a<d;a++)
{
t2[a] = t[a] + p;
res = czyCieplo(t2);
k--;
t2[a] = t[a] - p;
res = czyCieplo(t2);
k--;
if (res)
tab[a] = 1;
else
{
t2[a] = t[a] + p;
res = czyCieplo(t2);
k--;
if (res)
tab[a] = 2;
else
tab[a] = 0;
}
}
for (int a=0;a<d;a++)
{
if (tab[a] == 1)
t[a] = t[a] - pr;
if (tab[a] == 2)
t[a] = t[a] + pr;
t2[a] = t[a];
}
}
znalazlem(t);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #include "cielib.h" using namespace std; int main() { int d, r,k,p,pr,res; r = podajR(); d = podajD(); k = podajK(); int* t = new int[d]; int* t2 = new int[d]; int* tab = new int[d]; p = r; pr = p % 2; p = p / 2; pr = pr + p; for (int a = 0; a < d; a++) { tab[a] = 3; t[a] = pr; t2[a] = pr; } int flaga = 0; if (r % 2) flaga = 1; while (p > 0) { for (int a=0;a<d;a++) { if (tab[a] != 0) { t2[a] = t[a] + p; res = czyCieplo(t2); k--; t2[a] = t[a] - p; res = czyCieplo(t2); k--; if (res) tab[a] = 1; else { t2[a] = t[a] + p; res = czyCieplo(t2); k--; if (res) tab[a] = 2; else tab[a] = 0; } } } pr = p % 2; p = p / 2; pr = pr + p; for (int a=0;a<d;a++) { if (tab[a] == 1) t[a] = t[a] - pr; if (tab[a] == 2) t[a] = t[a] + pr; t2[a] = t[a]; } } if (flaga && k >= d * 3) { p = 1; pr = 1; for (int a=0;a<d;a++) { t2[a] = t[a] + p; res = czyCieplo(t2); k--; t2[a] = t[a] - p; res = czyCieplo(t2); k--; if (res) tab[a] = 1; else { t2[a] = t[a] + p; res = czyCieplo(t2); k--; if (res) tab[a] = 2; else tab[a] = 0; } } for (int a=0;a<d;a++) { if (tab[a] == 1) t[a] = t[a] - pr; if (tab[a] == 2) t[a] = t[a] + pr; t2[a] = t[a]; } } znalazlem(t); return 0; } |
English