#include "cielib.h" int t[500]; int tab[500][2]; int n, d; int main() { d = podajD(); n = podajR(); for(int i = 0; i < d; ++i) { tab[i][0] = 0; tab[i][1] = n; t[i] = n/2; } while(tab[0][1] - tab[0][0] > 2) { for(int i = 0; i < d; i++) { t[i] = tab[i][0]; czyCieplo(t); t[i] = tab[i][1]; int mid = (tab[i][1] - tab[i][0]) / 2; if(czyCieplo(t)) { tab[i][0] = mid; } else { if(tab[i][1] - tab[i][0] % 2 == 0) tab[i][1] = mid; else tab[i][1] = mid+1; } t[i] = (tab[i][0] + tab[i][1]) / 2; } } for(int i = 0; i < d; i++) { int mid = (tab[i][1] - tab[i][0]) / 2; t[i] = tab[i][0]; czyCieplo(t); t[i] = tab[i][1]; if(!czyCieplo(t)) { t[i] = tab[i][0]; if(!czyCieplo(t)) { t[i] = mid; } } } znalazlem(t); }
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 | #include "cielib.h" int t[500]; int tab[500][2]; int n, d; int main() { d = podajD(); n = podajR(); for(int i = 0; i < d; ++i) { tab[i][0] = 0; tab[i][1] = n; t[i] = n/2; } while(tab[0][1] - tab[0][0] > 2) { for(int i = 0; i < d; i++) { t[i] = tab[i][0]; czyCieplo(t); t[i] = tab[i][1]; int mid = (tab[i][1] - tab[i][0]) / 2; if(czyCieplo(t)) { tab[i][0] = mid; } else { if(tab[i][1] - tab[i][0] % 2 == 0) tab[i][1] = mid; else tab[i][1] = mid+1; } t[i] = (tab[i][0] + tab[i][1]) / 2; } } for(int i = 0; i < d; i++) { int mid = (tab[i][1] - tab[i][0]) / 2; t[i] = tab[i][0]; czyCieplo(t); t[i] = tab[i][1]; if(!czyCieplo(t)) { t[i] = tab[i][0]; if(!czyCieplo(t)) { t[i] = mid; } } } znalazlem(t); } |