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
#include <bits/stdc++.h>
#include "cielib.h"
using namespace std;

int d, r;

int lew[507];
int pra[507];
int sr[507];
int plu[507];

int main()
{
	d=podajD();
	r=podajR();
	for (int i=0; i<d; i++)
	{
		lew[i]=0;
		pra[i]=r;
	}
	while(pra[0]-lew[0]>2)
	{
		for (int i=0; i<d; i++)
		{
			for (int j=0; j<d; j++)
			{
				sr[j]=(lew[j]+pra[j])/2;
			}
			sr[i]=lew[i];
			czyCieplo(sr);
			sr[i]=pra[i];
			if (czyCieplo(sr))
				lew[i]+=(pra[i]-lew[i])/2;
			else
				pra[i]-=(pra[i]-lew[i])/2;
		}
	}
	for (int i=0; i<d; i++)
		sr[i]=(lew[i]+pra[i])/2;
	for (int i=0; i<d; i++)
	{
		czyCieplo(sr);
		
		sr[i]++;
		plu[i]+=czyCieplo(sr);
		sr[i]--;
		plu[i]-=czyCieplo(sr);
		sr[i]--;
		plu[i]-=czyCieplo(sr);
		sr[i]++;
		plu[i]+=czyCieplo(sr);
		
		if (plu[i])
			plu[i]/=abs(plu[i]);
	}
	for (int i=0; i<d; i++)
		sr[i]+=plu[i];
	znalazlem(sr);
	return 0;
}