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
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <bits/stdc++.h>
#include "cielib.h"
using namespace std;

long long int d,k,r,a;
int zak[510][10];
int poz[510];
int akt,ile;
bool czy[510];



void niuszka()
{
    for(int i=0;i<d;i++)
    {
        int a,b;
        if(zak[i][1]==zak[i][2])
        {
            czy[i]=true;
            ile--;
            poz[i]=zak[i][1];
        }
        if(i!=akt&&!czy[i])
        {
            if(poz[i]!=zak[i][1])
            {
                poz[i]=zak[i][1];
                a=czyCieplo(poz);
            }
            else
            {
                poz[i]=zak[i][2];
                a=czyCieplo(poz);
            }
            if(poz[i]!=zak[i][1])
            {
                poz[i]=zak[i][1];
                a=czyCieplo(poz);
            }
            else
            {
                poz[i]=zak[i][2];
                b=czyCieplo(poz);
            }
            if(a==1||b==1)
            {
                akt=i;
                break;
            }
        }
    }
}

void licz()
{
    int x[10];
    int lol=0;
    x[1]=1;
    x[0]=1;
    while(x[0]!=0||x[1]!=0)
    {
        lol++;
        if(poz[akt]!=zak[akt][1])
        {
            poz[akt]=zak[akt][1];
            x[lol%2]=czyCieplo(poz);
            if(x[lol%2]==1)
            {
                if(zak[akt][2]-zak[akt][1]==1)
                    zak[akt][2]=zak[akt][1];
                else
                    zak[akt][2]=(zak[akt][2]+zak[akt][1])/2;
            }

        }

        if(poz[akt]!=zak[akt][2])
        {
            poz[akt]=zak[akt][2];
            x[lol%2]=czyCieplo(poz);
            if(x[lol%2]==1)
            {
                if(zak[akt][2]-zak[akt][1]==1)
                    zak[akt][1]=zak[akt][2];
                else
                    zak[akt][1]=(zak[akt][2]+zak[akt][1])/2;
            }

        }
    }
}

int main(){

    d=podajD();
    r=podajR();
    k=podajK();
    //for(int i=0;i<d;i++)
     //   cin>>akk[i];
    int ile=d;

    czyCieplo(poz);

    for(int i=0;i<d;i++)
        zak[i][2]=r;

    akt=0;

    while(ile>0)
    {
        niuszka();
        licz();
    }

    znalazlem(poz);

    return 0;
}