#include "cielib.h"
#include <cstdio>
const int N = 505;
int poczatek[N], pytanie[N], nowepoczatki[N];
int main()
{
int d = podajD(), k = podajK(), r = podajR();
r++;
k += 0;
if (r % 2 == 0)
{
for (int i = 0; i < d; ++i)
{
for (int j = 0; j < d; ++j)
pytanie[j] = r/2 - 1;
pytanie[i] = 0;
czyCieplo(pytanie);
pytanie[i] = r-1;
bool b1 = czyCieplo(pytanie);
for (int j = 0; j < d; ++j)
pytanie[j] = r/2;
pytanie[i] = 0;
czyCieplo(pytanie);
pytanie[i] = r-1;
bool b2 = czyCieplo(pytanie);
if (b1 && b2)
poczatek[i] = 1;
}
r--;
}
while (r>1)
{
for (int i = 0; i < d; ++i)
pytanie[i] = poczatek[i] + r/2;
for (int i = 0; i < d; ++i)
{
pytanie[i] = poczatek[i];
czyCieplo(pytanie);
pytanie[i] = poczatek[i] + r - 1;
bool blizej = czyCieplo(pytanie);
if (blizej)
{
nowepoczatki[i] = poczatek[i]+r/2 + 1;
if ((r/2)%2 == 0)
nowepoczatki[i]--;
pytanie[i] = poczatek[i] + r/2;
continue;
}
pytanie[i] = poczatek[i];
blizej = czyCieplo(pytanie);
if (blizej)
{
nowepoczatki[i] = poczatek[i];
pytanie[i] = poczatek[i] + r/2;
continue;
}
else
{
nowepoczatki[i] = poczatek[i] + r/2;
pytanie[i] = poczatek[i] + r/2;
}
}
for (int i = 0; i < d; ++i)
poczatek[i] = nowepoczatki[i];
r = r/2;
if (r % 2 == 0)
r++;
}
znalazlem(poczatek);
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 | #include "cielib.h" #include <cstdio> const int N = 505; int poczatek[N], pytanie[N], nowepoczatki[N]; int main() { int d = podajD(), k = podajK(), r = podajR(); r++; k += 0; if (r % 2 == 0) { for (int i = 0; i < d; ++i) { for (int j = 0; j < d; ++j) pytanie[j] = r/2 - 1; pytanie[i] = 0; czyCieplo(pytanie); pytanie[i] = r-1; bool b1 = czyCieplo(pytanie); for (int j = 0; j < d; ++j) pytanie[j] = r/2; pytanie[i] = 0; czyCieplo(pytanie); pytanie[i] = r-1; bool b2 = czyCieplo(pytanie); if (b1 && b2) poczatek[i] = 1; } r--; } while (r>1) { for (int i = 0; i < d; ++i) pytanie[i] = poczatek[i] + r/2; for (int i = 0; i < d; ++i) { pytanie[i] = poczatek[i]; czyCieplo(pytanie); pytanie[i] = poczatek[i] + r - 1; bool blizej = czyCieplo(pytanie); if (blizej) { nowepoczatki[i] = poczatek[i]+r/2 + 1; if ((r/2)%2 == 0) nowepoczatki[i]--; pytanie[i] = poczatek[i] + r/2; continue; } pytanie[i] = poczatek[i]; blizej = czyCieplo(pytanie); if (blizej) { nowepoczatki[i] = poczatek[i]; pytanie[i] = poczatek[i] + r/2; continue; } else { nowepoczatki[i] = poczatek[i] + r/2; pytanie[i] = poczatek[i] + r/2; } } for (int i = 0; i < d; ++i) poczatek[i] = nowepoczatki[i]; r = r/2; if (r % 2 == 0) r++; } znalazlem(poczatek); return 0; } |
English