Advertisement
nicuvlad76

Untitled

Jan 14th, 2023
794
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <algorithm>
  2. #include <fstream>
  3. #define N 1005
  4. using namespace std;
  5. ifstream fin("afise.in");
  6. ofstream fout("afise.out");
  7. struct afis
  8. {
  9.     int rau, alb;
  10. }S[N];
  11.  
  12. int L, n, k, m;
  13. int viz[N];
  14.  
  15. int poz(int p, int u)
  16. {
  17.     int st=p, dr=u;
  18.     afis aux=S[p];
  19.     while(st<dr)
  20.     {
  21.         while(st<dr && aux.alb<=S[dr].alb) dr--;
  22.         S[st]=S[dr];
  23.         while(st<dr && aux.alb>=S[st].alb) st++;
  24.         S[dr]=S[st];
  25.     }
  26.     S[st]=aux;
  27.     return st;
  28. }
  29. void Sort(int p , int u)
  30. {
  31.     int m=poz(p,u);
  32.     if(p<m) Sort(p,m-1);
  33.     if(m<u)Sort(m+1, u);
  34. }
  35. int main()
  36. {
  37.     int x;
  38.     fin>>L>>n>>k;
  39.     for(int i=1;i<=n;i++)
  40.     {
  41.         fin>>x; viz[x]=1;
  42.     }
  43.  
  44.     int rau=0, alb=0,i;
  45.     i=1;
  46.     while(viz[i]==0 && i<=L)i++;
  47.     while(i<=L)
  48.     {
  49.         while(viz[i]==1 && i<=L){rau++; i++;}
  50.         while(viz[i]==0 && i<=L){alb++; i++;}
  51.         m++;
  52.         S[m].rau=rau;
  53.         S[m].alb=alb;
  54.         rau=alb=0;
  55.     }
  56.     m--;
  57.  
  58.     Sort(1,m);
  59.  
  60.     int val=0, Nk=0;
  61.     m++;
  62.     for(i=1;i<=m;i++)val+=S[i].rau;
  63.  
  64.     Nk=m;
  65.     if(m>k)
  66.     {
  67.         i=1;
  68.         while(Nk>k&& i<=m)
  69.         {
  70.             val+=S[i].alb; i++, Nk--;
  71.         }
  72.         fout<<val<<" "<<Nk;
  73.     }
  74.     return(0);
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement