#include "cielib.h" int main() { int d = podajD(); int r = podajR(); int poz[500]; for(int i = 0 ; i < d ; i++) { poz[i] = r/2; } czyCieplo(poz); int dim = 0; // Obecny wymiar // Dopoki sa wymiary while( dim+1 <= d ) { bool lewo = true; // Czy po lewej jest cieplo? bool prawo = true; // Czy po prawej jest cieplo? int i = 2; while( true ){ if(r/i > 1) i*=2; int tmp = poz[dim]; // Idz w prawo if(poz[dim]+1 > r){ prawo = 0; } else{ poz[dim]++; prawo = czyCieplo(poz); } // Wroc na srodek poz[dim] = tmp; // Idz w lewo if(poz[dim]-1 < 0){ lewo = 0; } else{ poz[dim]--; lewo = czyCieplo(poz); } // Wroc na srodek poz[dim] = tmp; // Jesli pozycja sie nie zmienia, zmien wymiar if(!lewo && !prawo){ dim++; break; } // Idz o polowe w prawo else if(!lewo && prawo){ if(poz[dim]+(r/i) > r) poz[dim]++; else{ poz[dim] += r/i; } } // Idz o polowe w lewo else if(lewo && !prawo){ if(poz[dim]-(r/i) < 0) poz[dim]--; else{ poz[dim] -= r/i; } } } } znalazlem(poz); }
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 | #include "cielib.h" int main() { int d = podajD(); int r = podajR(); int poz[500]; for(int i = 0 ; i < d ; i++) { poz[i] = r/2; } czyCieplo(poz); int dim = 0; // Obecny wymiar // Dopoki sa wymiary while( dim+1 <= d ) { bool lewo = true; // Czy po lewej jest cieplo? bool prawo = true; // Czy po prawej jest cieplo? int i = 2; while( true ){ if(r/i > 1) i*=2; int tmp = poz[dim]; // Idz w prawo if(poz[dim]+1 > r){ prawo = 0; } else{ poz[dim]++; prawo = czyCieplo(poz); } // Wroc na srodek poz[dim] = tmp; // Idz w lewo if(poz[dim]-1 < 0){ lewo = 0; } else{ poz[dim]--; lewo = czyCieplo(poz); } // Wroc na srodek poz[dim] = tmp; // Jesli pozycja sie nie zmienia, zmien wymiar if(!lewo && !prawo){ dim++; break; } // Idz o polowe w prawo else if(!lewo && prawo){ if(poz[dim]+(r/i) > r) poz[dim]++; else{ poz[dim] += r/i; } } // Idz o polowe w lewo else if(lewo && !prawo){ if(poz[dim]-(r/i) < 0) poz[dim]--; else{ poz[dim] -= r/i; } } } } znalazlem(poz); } |