1006B - Polycarp's Practice - CodeForces Solution


greedy implementation sortings *1200

Please click on ads to support us..

Python Code:

R=lambda:map(int,input().split())
n,k=R()
a=sorted(zip(R(),range(n)))[-k:]
print(sum(x[0]for x in a))
b=sorted(x[1]for x in a)+[n]
b[0]=0
print(*(y-x for x,y in zip(b,b[1:])))

C++ Code:

#include <iostream>
#include<bits/stdc++.h>
#define  FIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;

int main()
{FIO
    int n,k;
    cin>>n>>k;
    int arr[n],arr2[n],max[k],indx[k],sum=0;
    for(int i=0;i<n;i++)
    cin>>arr[i];
    for(int i=0;i<n;i++)
    arr2[i]=arr[i];

sort(arr2,arr2+n,greater<int>());
      for(int i=0;i<k;i++){
      max[i]=arr2[i];
      sum+=arr2[i];
      }
      if(k==1){
        cout<<max[0]<<"\n";
        cout<<n;
        return 0;
      }
     for(int i=0;i<k;i++){
       for(int j=0;j<n;j++){
        if(max[i]==arr[j]){
            
        indx[i]=j;
       
        arr[j]=0;
       // max[i]=0;
        break;
        }
       }  
      }
      sort(indx,indx+k);
      cout<<sum<<"\n";
      int x=-1;int f=0;
     
      for(int i=0;i<k;i++){
        
        //f=f+(indx[i]-x);
        if(i==k-1){
        
        if(n-x>=indx[i]-x){
        cout<<n-1-x;
        break;
        }
        else {
        cout<<indx[i]-x;break;
        }
        
        }
       cout<<abs(indx[i]-x)<<" ";
        f=f+(indx[i]-x);
        x=indx[i];
       
        
      }
    /*  if(indx[k-1]-x<n-f)
      
      cout<<n-f;
      else cout<<indx[k-1]-x;*/
     
    return 0;
}


Comments

Submit
0 Comments
More Questions

628. Maximum Product of Three Numbers
1526A - Mean Inequality
1526B - I Hate 1111
1881. Maximum Value after Insertion
237. Delete Node in a Linked List
27. Remove Element
39. Combination Sum
378. Kth Smallest Element in a Sorted Matrix
162. Find Peak Element
1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum
797. All Paths From Source to Target
1547B - Alphabetical Strings
1550A - Find The Array
118B - Present from Lena