CCCPaste

Untitled

#include 
#include 
using namespace std;
int main()
{
 
    int n,prostor,k,tmp;
    bool izgradeni[10001];
    int novi=0;
    cin>>n>>prostor>>k;
    // ???? ????????? ?? ??????? ?? ????? ???????? False
    for(int i=1;i<=n;i++)
    {
 
        izgradeni[i]=false;
    }
    // ???? ????????? ?? ????????? ?? ??? ??? ????????? ?????? ?? ????? ?? True
    for(int i=1;i<=k;i++)
    {
         cin>>tmp;
        izgradeni[tmp]=true;
    }
    int parni_pred=0,neparni_pred=0;
    int parni_posle=0,neparni_posle=0;
     for(int i=1;i<=n;i++)
     {
         //?? ?????
         if(i%2==0)
         {
            if(izgradeni[i]==false)
            {
                parni_pred++;
 
            }
 
            else
            {
                parni_pred=0;
                // ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
                // if(izgradeni[2]==false)
                izgradeni[2]=true;
 
 
            }
            if(parni_pred==prostor+1)
            {
 
 
                 //?????? ????? ???? ?? ????? ?? ?????? ??. 2
                if(izgradeni[2]==false)
                {
 
 
                    novi++;
                    izgradeni[2]=true;
 
                    parni_pred=prostor;
                }
 
                else
                {
 
 
                for(int j=i+2;j<=n;j+=2)
                {
                    //???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
                     if(parni_posle==prostor)
                    {
                        novi++;
 
                        parni_posle=0;
                        break;
                    }
 
                    if(izgradeni[j]==false)
                    {
                        parni_posle++;
                    }
                    else
                    {   // ?? ?????? ??????????
                        parni_posle=0;
                        break;
                    }
 
                }
                //??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
                //??? ????? ???? ?????? ?? ????????? ???? ???? ??????
                if(parni_posle!=0)
                {
 
                    novi++;
 
                }
                else if (parni_posle==0 && i+2>n)
                {
 
                    novi++;
                }
                parni_posle=0;
                parni_pred=0;
                }
 
            }
 
         }
         //?? ???????
         else
         {
              if(izgradeni[i]==false)
            {
                neparni_pred++;
 
            }
 
            else
            {
                neparni_pred=0;
                // ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
                // if(izgradeni[1]==false)
                izgradeni[1]=true;
            }
            if(neparni_pred==prostor+1)
            {
 
                //?????? ??????? ???? ?? ????? ?? ?????? ??. 1
                if(izgradeni[1]==false)
                {
                    novi++;
                    izgradeni[1]=true;
                    neparni_pred=prostor;
 
                }
                else
                {
 
 
                for(int j=i+2;j<=n;j+=2)
                {
                    //???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
                    if(neparni_posle==prostor)
                    {
                        novi++;
                        neparni_posle=0;
                        break;
                    }
 
                    if(izgradeni[j]==false)
                    {
 
 
                        neparni_posle++;
 
                    }
                    else
                    {   // ?? ?????? ??????????
                        neparni_posle=0;
                        break;
                    }
 
                }
                //??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
                //??? ????? ???? ?????? ?? ????????? ???? ???? ??????
                if(neparni_posle!=0)
                {
                    novi++;
 
                }
                else if (neparni_posle==0 && i+2>n)
                {
                    novi++;
 
                }
                neparni_posle=0;
                neparni_pred=0;
                }
 
            }
 
 
         }
     }
     // ?? ??? ?? ??????????? ???????? ???? ???? ??????? ?? ??????, ? ????????? >= ???????? ???? ???????
     // ?????? ?? ???????? ?????? ????? ??????? ???? ?? ???? == ?? ?????? ?? ?????? ????? ?????? (???? ?? ?? ??????)
     // ?? parni_pred > 0 ??????????? ???? ??????? ????? ????? ??????
    if(prostor>=n/2 && parni_pred==n/2 && parni_pred>0)
    {
        novi++;
    }
    //??? ? ??????? ?????? ?? ???????, ????? ????????? ?????? ?? (n/2)+1
    // ?????? ?? 5 (5/2)+1 = 3 ??????? ?????
     int n1;
     if(n%2==1)
        n1=(n/2)+1;
     else n1=n/2;
    //?????? ?? ???????
    if(prostor>=n1 && neparni_pred==n1 && neparni_pred>0)
    {
        novi++;
    }
 
    cout<