#include "cielib.h"
#include <stdio.h>
#include <stdlib.h>
int main() {
int d = podajD();
int r = podajR();
int i;
int *L = calloc(d, sizeof(*L));
int *R = calloc(d, sizeof(*R));
int *T = calloc(d, sizeof(*T));
for (i=0; i<d; i++) {
L[i] = 0;
R[i] = r;
}
int cont = 1;
while (cont) {
for (i = 0; i < d; i++) {
if (R[i] - L[i] == 1) {
if (L[i] > 0) {
L[i]--;
} else {
R[i]++;
}
}
T[i] = (L[i] + R[i]) / 2;
}
cont = 0;
for (i = 0; i < d; i++) {
int t = T[i];
int m1 = (L[i] + R[i]) / 2; // L, R <0; 2> => mid = 1
int m2 = m1 + (L[i] + R[i]) % 2;
T[i] = L[i];
czyCieplo(T);
T[i] = R[i];
int v = czyCieplo(T);
if (R[i] - L[i] == 2) {
T[i] = L[i];
L[i] = R[i] = v ? R[i] : czyCieplo(T) ? L[i] : m1;
} else if (v) {
L[i] = m1;
R[i] = R[i];
cont = 1;
} else {
L[i] = L[i];
R[i] = m2;
cont = 1;
}
T[i] = t;
}
}
for (i = 0; i < d; i++) {
T[i] = L[i];
}
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 | #include "cielib.h" #include <stdio.h> #include <stdlib.h> int main() { int d = podajD(); int r = podajR(); int i; int *L = calloc(d, sizeof(*L)); int *R = calloc(d, sizeof(*R)); int *T = calloc(d, sizeof(*T)); for (i=0; i<d; i++) { L[i] = 0; R[i] = r; } int cont = 1; while (cont) { for (i = 0; i < d; i++) { if (R[i] - L[i] == 1) { if (L[i] > 0) { L[i]--; } else { R[i]++; } } T[i] = (L[i] + R[i]) / 2; } cont = 0; for (i = 0; i < d; i++) { int t = T[i]; int m1 = (L[i] + R[i]) / 2; // L, R <0; 2> => mid = 1 int m2 = m1 + (L[i] + R[i]) % 2; T[i] = L[i]; czyCieplo(T); T[i] = R[i]; int v = czyCieplo(T); if (R[i] - L[i] == 2) { T[i] = L[i]; L[i] = R[i] = v ? R[i] : czyCieplo(T) ? L[i] : m1; } else if (v) { L[i] = m1; R[i] = R[i]; cont = 1; } else { L[i] = L[i]; R[i] = m2; cont = 1; } T[i] = t; } } for (i = 0; i < d; i++) { T[i] = L[i]; } znalazlem(T); return 0; } |
English