#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<