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
#include "cielib.h"
//#include<iostream>
const int N = 502;
int tab[N], lewy[N],prawy[N],srodek[N];
int main() {
	int d = podajD();
	//int k = podajK();
	int r = podajR();
	int i, j, temp;
	bool liczymy_dalej = true;

	for(i = 0; i < d; ++i) {
		tab[i] = 0;
		lewy[i] = 0;
		prawy[i] = r;
	}
	czyCieplo(tab);
	while(liczymy_dalej) {
	liczymy_dalej = false;	
	for(i = 0; i < d;++i) {
		if(lewy[i] + 1 < prawy[i]) {
				srodek[i]  = (lewy[i] + prawy[i])/2;
				liczymy_dalej = true;
			}
		}
		czyCieplo(lewy);	
		if(czyCieplo(prawy)) {
			for(j = 0; j < d; ++j) tab[j] = prawy[j];
			for(i = 0 ; i < d; ++i) {
				temp = tab[i];
				tab[i] = lewy[i]; 
				if(czyCieplo(tab) ) prawy[i] = srodek[i] - 1;
				else lewy[i] = srodek[i] ;
				tab[i] = temp;
				czyCieplo(prawy);
			}
			}
		else { czyCieplo(lewy);
			for(j = 0; j < d; ++j) tab[j] = lewy[j];
			for(i = 0 ; i < d; ++i) {			
				temp = tab[i];
				tab[i] = prawy[i]; 
				if(czyCieplo(tab) ) lewy[i] = srodek[i] + 1;
				else prawy[i] = srodek[i] ;
				tab[i] = temp;
				czyCieplo(lewy);
			}
		}	
							
	}

	znalazlem(lewy);
}