Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- 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<<novi;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement