Advertisement
Josif_tepe

Untitled

Feb 25th, 2024
638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. int main()
  5. {
  6.  
  7.     int n,prostor,k,tmp;
  8.     bool izgradeni[10001];
  9.     int novi=0;
  10.     cin>>n>>prostor>>k;
  11.     // ???? ????????? ?? ??????? ?? ????? ???????? False
  12.     for(int i=1;i<=n;i++)
  13.     {
  14.  
  15.         izgradeni[i]=false;
  16.     }
  17.     // ???? ????????? ?? ????????? ?? ??? ??? ????????? ?????? ?? ????? ?? True
  18.     for(int i=1;i<=k;i++)
  19.     {
  20.          cin>>tmp;
  21.         izgradeni[tmp]=true;
  22.     }
  23.     int parni_pred=0,neparni_pred=0;
  24.     int parni_posle=0,neparni_posle=0;
  25.      for(int i=1;i<=n;i++)
  26.      {
  27.          //?? ?????
  28.          if(i%2==0)
  29.          {
  30.             if(izgradeni[i]==false)
  31.             {
  32.                 parni_pred++;
  33.  
  34.             }
  35.  
  36.             else
  37.             {
  38.                 parni_pred=0;
  39.                 // ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
  40.                 // if(izgradeni[2]==false)
  41.                 izgradeni[2]=true;
  42.  
  43.  
  44.             }
  45.             if(parni_pred==prostor+1)
  46.             {
  47.  
  48.  
  49.                  //?????? ????? ???? ?? ????? ?? ?????? ??. 2
  50.                 if(izgradeni[2]==false)
  51.                 {
  52.  
  53.  
  54.                     novi++;
  55.                     izgradeni[2]=true;
  56.  
  57.                     parni_pred=prostor;
  58.                 }
  59.  
  60.                 else
  61.                 {
  62.  
  63.  
  64.                 for(int j=i+2;j<=n;j+=2)
  65.                 {
  66.                     //???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
  67.                      if(parni_posle==prostor)
  68.                     {
  69.                         novi++;
  70.  
  71.                         parni_posle=0;
  72.                         break;
  73.                     }
  74.  
  75.                     if(izgradeni[j]==false)
  76.                     {
  77.                         parni_posle++;
  78.                     }
  79.                     else
  80.                     {   // ?? ?????? ??????????
  81.                         parni_posle=0;
  82.                         break;
  83.                     }
  84.  
  85.                 }
  86.                 //??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
  87.                 //??? ????? ???? ?????? ?? ????????? ???? ???? ??????
  88.                 if(parni_posle!=0)
  89.                 {
  90.  
  91.                     novi++;
  92.  
  93.                 }
  94.                 else if (parni_posle==0 && i+2>n)
  95.                 {
  96.  
  97.                     novi++;
  98.                 }
  99.                 parni_posle=0;
  100.                 parni_pred=0;
  101.                 }
  102.  
  103.             }
  104.  
  105.          }
  106.          //?? ???????
  107.          else
  108.          {
  109.               if(izgradeni[i]==false)
  110.             {
  111.                 neparni_pred++;
  112.  
  113.             }
  114.  
  115.             else
  116.             {
  117.                 neparni_pred=0;
  118.                 // ??????? ???? ?????? ????????? ??????, ?? ?????? ?????? ???????? ?? ???? ????????? ?? ?????? ??????????
  119.                 // if(izgradeni[1]==false)
  120.                 izgradeni[1]=true;
  121.             }
  122.             if(neparni_pred==prostor+1)
  123.             {
  124.  
  125.                 //?????? ??????? ???? ?? ????? ?? ?????? ??. 1
  126.                 if(izgradeni[1]==false)
  127.                 {
  128.                     novi++;
  129.                     izgradeni[1]=true;
  130.                     neparni_pred=prostor;
  131.  
  132.                 }
  133.                 else
  134.                 {
  135.  
  136.  
  137.                 for(int j=i+2;j<=n;j+=2)
  138.                 {
  139.                     //???? ???? ????? ?? ???? ??? ?? ?? ?????? prostor = 0;
  140.                     if(neparni_posle==prostor)
  141.                     {
  142.                         novi++;
  143.                         neparni_posle=0;
  144.                         break;
  145.                     }
  146.  
  147.                     if(izgradeni[j]==false)
  148.                     {
  149.  
  150.  
  151.                         neparni_posle++;
  152.  
  153.                     }
  154.                     else
  155.                     {   // ?? ?????? ??????????
  156.                         neparni_posle=0;
  157.                         break;
  158.                     }
  159.  
  160.                 }
  161.                 //??? ????? ???? ?? ? ??????? ????????? ??????, ? ??? ???????? ?? ?????? ?? ??????,
  162.                 //??? ????? ???? ?????? ?? ????????? ???? ???? ??????
  163.                 if(neparni_posle!=0)
  164.                 {
  165.                     novi++;
  166.  
  167.                 }
  168.                 else if (neparni_posle==0 && i+2>n)
  169.                 {
  170.                     novi++;
  171.  
  172.                 }
  173.                 neparni_posle=0;
  174.                 neparni_pred=0;
  175.                 }
  176.  
  177.             }
  178.  
  179.  
  180.          }
  181.      }
  182.      // ?? ??? ?? ??????????? ???????? ???? ???? ??????? ?? ??????, ? ????????? >= ???????? ???? ???????
  183.      // ?????? ?? ???????? ?????? ????? ??????? ???? ?? ???? == ?? ?????? ?? ?????? ????? ?????? (???? ?? ?? ??????)
  184.      // ?? parni_pred > 0 ??????????? ???? ??????? ????? ????? ??????
  185.     if(prostor>=n/2 && parni_pred==n/2 && parni_pred>0)
  186.     {
  187.         novi++;
  188.     }
  189.     //??? ? ??????? ?????? ?? ???????, ????? ????????? ?????? ?? (n/2)+1
  190.     // ?????? ?? 5 (5/2)+1 = 3 ??????? ?????
  191.      int n1;
  192.      if(n%2==1)
  193.         n1=(n/2)+1;
  194.      else n1=n/2;
  195.     //?????? ?? ???????
  196.     if(prostor>=n1 && neparni_pred==n1 && neparni_pred>0)
  197.     {
  198.         novi++;
  199.     }
  200.  
  201.     cout<<novi;
  202.  
  203.      return 0;
  204.  
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement