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
#include <cstdio>
using namespace std;

#include "cielib.h"


int main()
{

    int d = podajD();
    int k = podajK();
    int r = podajR();

    int * pozycja = new int [d];
    int * lower = new int [d];
    int * upper = new int [d];
    for( int i=0 ; i<d ; i++ )
    {
            lower[i]=0;
            upper[i]=r;
    }




    while(1)
    {
        int index=0;
        for( int i=1 ; i<d ; i++ )
        {
            if( upper[i]-lower[i] > upper[index]-lower[index] )
                index = i;
        }
        if( upper[index]-lower[index]<=1 )
            break;

        for( int i=0 ; i<d ; i++ )
            pozycja[i]=(lower[i]+upper[i])/2;
        pozycja[index]=lower[index];
        czyCieplo(pozycja);
        pozycja[index]=upper[index];
        int answer = czyCieplo(pozycja);
        if( answer==0 )
            upper[index] = (lower[index]+upper[index]+1)/2;
        else
            lower[index] = (lower[index]+upper[index]+1)/2+1;

    }
    for( int i=0 ; i<d ; i++ )
        pozycja[i]=lower[i];

    for( int i=0 ; i<d ; i++ )
    {
        if( lower[i]==upper[i] )
            continue;

        if( lower[i]>0 )
        {
            pozycja[i]=lower[i]-1;
            czyCieplo(pozycja);
            pozycja[i]=upper[i];
            int answer = czyCieplo(pozycja);
            if( answer==0 )
                upper[i]=pozycja[i]=lower[i];
            else
                lower[i]=pozycja[i]=upper[i];
        }
        else
        {
            pozycja[i]=upper[i]+1;
            czyCieplo(pozycja);
            pozycja[i]=lower[i];
            int answer = czyCieplo(pozycja);
            if( answer==0 )
                lower[i]=pozycja[i]=upper[i];
            else
                upper[i]=pozycja[i]=lower[i];
        }
    }

    znalazlem(pozycja);

    return 0;
}