// Michal Orawiec
// Cieplo-zimno
#include "cielib.h"
const int MAX_D = 505;
int r, d, k;
int l[MAX_D]; // wlacznie
int p[MAX_D]; // wlacznie
int tmp[MAX_D];
int tmp2[MAX_D];
int main() {
r = podajR();
d = podajD();
k = podajK();
for (int i = 0; i < d; i++) {
l[i] = 0;
p[i] = r;
tmp[i] = tmp2[i] = r / 2;
}
for (int i = 1; i <= 40; i++)
for (int j = 0; j < d; j++) {
if (l[j] < p[j]) {
if ((p[j] - l[j]) % 2 == 1) {
if (l[j] != 0)
l[j]--;
else if (p[j] != r)
p[j]++;
}
int s = (l[j] + p[j]) / 2;
tmp[j] = tmp2[j] = l[j];
czyCieplo(tmp);
tmp[j] = p[j];
int czyBlizej = czyCieplo(tmp);
if (czyBlizej)
l[j] = s + 1;
else {
int czyBlizej2 = czyCieplo(tmp2);
if (czyBlizej2 && (p[j] - l[j]) % 2 == 1)
p[j] = s;
else if (czyBlizej2)
p[j] = s - 1;
else if ((p[j] - l[j]) % 2 == 0) {
l[j] = p[j] = s;
}
}
tmp[j] = tmp2[j] = (l[j] + p[j]) / 2;
}
}
znalazlem(l);
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 | // Michal Orawiec // Cieplo-zimno #include "cielib.h" const int MAX_D = 505; int r, d, k; int l[MAX_D]; // wlacznie int p[MAX_D]; // wlacznie int tmp[MAX_D]; int tmp2[MAX_D]; int main() { r = podajR(); d = podajD(); k = podajK(); for (int i = 0; i < d; i++) { l[i] = 0; p[i] = r; tmp[i] = tmp2[i] = r / 2; } for (int i = 1; i <= 40; i++) for (int j = 0; j < d; j++) { if (l[j] < p[j]) { if ((p[j] - l[j]) % 2 == 1) { if (l[j] != 0) l[j]--; else if (p[j] != r) p[j]++; } int s = (l[j] + p[j]) / 2; tmp[j] = tmp2[j] = l[j]; czyCieplo(tmp); tmp[j] = p[j]; int czyBlizej = czyCieplo(tmp); if (czyBlizej) l[j] = s + 1; else { int czyBlizej2 = czyCieplo(tmp2); if (czyBlizej2 && (p[j] - l[j]) % 2 == 1) p[j] = s; else if (czyBlizej2) p[j] = s - 1; else if ((p[j] - l[j]) % 2 == 0) { l[j] = p[j] = s; } } tmp[j] = tmp2[j] = (l[j] + p[j]) / 2; } } znalazlem(l); return 0; } |
English