fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main (){
  5. long long x , y , z , n , m , i , l , t , j , k , s1 , s2 , s3 , s4 , r , s5 , s6 , s7 ;
  6. double u , v , w , uu , vv , ww , h , hh ;
  7. long long a [ 200045 ] ;
  8. long long b [ 200045 ] ;
  9. long long c [ 200005 ] ;
  10. long long d [ 400005 ] ;
  11. string s ;
  12. string q ;
  13. string p ;
  14. string sq [ 1000 ] ;
  15. map < string , long long > mm ;
  16. pair < long long , long long > aa [ 300045 ] ;
  17. pair < long long , long long > bb [ 300045 ] ;
  18. cin >> n >> m ;
  19. for ( i = 1 ; i <= n ; i ++ ) {
  20. cin >> a [ i ] ;
  21. }
  22. sort ( a + 1 , a + n + 1 ) ;
  23. for ( i = 1 ; i <= a [ n ] ; i ++ ) {
  24. b [ i ] = 0 ;
  25. }
  26. for ( i = 1 ; i <= n ; i ++ ) {
  27. b [ a [ i ] ] ++ ;
  28. }
  29. for ( i = a [ n ] - 1 ; i >= 1 ; i -- ) {
  30. b [ i ] = b [ i ] + b [ i + 1 ] ;
  31. }
  32. for ( i = 1 ; i <= a [ n ] ; i ++ ) {
  33. if ( b [ i ] < n ) {
  34. z = i ;
  35. break ;
  36. }
  37. }
  38. x = 0 ;
  39. y = 0 ;
  40. for ( i = a [ n ] ; i >= z ; i -- ) {
  41. x = x + b [ i ] ;
  42. if ( x == m ) {
  43. y ++ ;
  44. x = 0 ;
  45. }
  46. else {
  47. if ( x > m ) {
  48. x = 0 ;
  49. y ++ ;
  50. i ++ ;
  51. }
  52. }
  53. }
  54. cout << y ;
  55. }
Success #stdin #stdout 0s 4532KB
stdin
5 5
3 1 2 2 4
stdout
1