#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); } |
English