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
#include "cielib.h" 

struct section
{
    int begin;
    int end;
};

int main()
{
    int pos[501];
    section volume[501];

    int d = podajD();
    int k = podajK();
    int r = podajR();
    for (int i = 0; i < d; i++)
    {
        pos[i] = r / 2;
        volume[i].begin = 0;
        volume[i].end = r;
    }

    int currentWidth = r;

    while (currentWidth != 2)
    {
        for (int i = 0; i < d; i++)
        {
            pos[i] = volume[i].begin;
            czyCieplo(pos);
            pos[i] = volume[i].end;
            bool cieplej = czyCieplo(pos) == 1;
            if (cieplej)
            {
                volume[i].begin = (volume[i].begin + volume[i].end) / 2;
                if ((volume[i].end - volume[i].begin) % 2 == 1)
                {
                    volume[i].begin--;
                }
            }
            else
            {
                volume[i].end = (volume[i].begin + volume[i].end + 1) / 2;
                if ((volume[i].end - volume[i].begin) % 2 == 1)
                {
                    volume[i].end++;
                }
            }
            pos[i] = (volume[i].begin + volume[i].end) / 2;
        }

        currentWidth = volume[0].end - volume[0].begin;
    }

    for (int i = 0; i < d; i++)
    {
        pos[i] = volume[i].begin;
        czyCieplo(pos);
        pos[i] = volume[i].end;
        bool cieplej = czyCieplo(pos) == 1;
        if (cieplej) continue;
        pos[i] = volume[i].begin;
        cieplej = czyCieplo(pos) == 1;
        if (cieplej) continue;
        pos[i] = (volume[i].begin + volume[i].end) / 2;
    }

    znalazlem(pos);
    return 0;
}