Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <fstream>
- #define N 1005
- using namespace std;
- ifstream fin("afise.in");
- ofstream fout("afise.out");
- struct afis
- {
- int rau, alb;
- }S[N];
- int L, n, k, m;
- int viz[N];
- int poz(int p, int u)
- {
- int st=p, dr=u;
- afis aux=S[p];
- while(st<dr)
- {
- while(st<dr && aux.alb<=S[dr].alb) dr--;
- S[st]=S[dr];
- while(st<dr && aux.alb>=S[st].alb) st++;
- S[dr]=S[st];
- }
- S[st]=aux;
- return st;
- }
- void Sort(int p , int u)
- {
- int m=poz(p,u);
- if(p<m) Sort(p,m-1);
- if(m<u)Sort(m+1, u);
- }
- int main()
- {
- int x;
- fin>>L>>n>>k;
- for(int i=1;i<=n;i++)
- {
- fin>>x; viz[x]=1;
- }
- int rau=0, alb=0,i;
- i=1;
- while(viz[i]==0 && i<=L)i++;
- while(i<=L)
- {
- while(viz[i]==1 && i<=L){rau++; i++;}
- while(viz[i]==0 && i<=L){alb++; i++;}
- m++;
- S[m].rau=rau;
- S[m].alb=alb;
- rau=alb=0;
- }
- m--;
- Sort(1,m);
- int val=0, Nk=0;
- m++;
- for(i=1;i<=m;i++)val+=S[i].rau;
- Nk=m;
- if(m>k)
- {
- i=1;
- while(Nk>k&& i<=m)
- {
- val+=S[i].alb; i++, Nk--;
- }
- fout<<val<<" "<<Nk;
- }
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement