Advertisement
twist_akid

Untitled

Oct 25th, 2014
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define ll long long int
  3. using namespace std;
  4.  
  5. vector<ll>v;
  6. ll sum[1000010];
  7.  
  8. int main()
  9. {
  10.     ll n,k;
  11.  
  12.     cin>>n>>k;
  13.  
  14.     for(int i=0; i<n; i++){
  15.         ll x;
  16.         cin>>x;
  17.         v.push_back(x);
  18.       //  sum[i]=sum[i-1]+a[i];
  19.     }
  20.     sort(v.rbegin(), v.rend());
  21.     //sort(v.begin(), v.end());
  22.     sum[0]=v[0];
  23.     for(int i=1; i<n;i++)
  24.     {
  25.         sum[i]=sum[i-1]+v[i];
  26.         //cout<<sum[i]<<" ";
  27.     }
  28.  
  29.     if(k>=n)
  30.         return printf("%I64d\n",sum[n-1]),0;
  31.     ll ans=0;
  32.     ll _count=0,sum1=0;
  33.     for(int i=0; i<n;  )
  34.     {
  35.       //  cout<<i-k+1<<"***";
  36.         //cout<<sum[i-k]<<endl;
  37.         ans+=sum[i+k-1]-sum1;
  38.         sum1=sum[i+k-1];
  39.         //cout<<ans<<endl;
  40.         i=i+k;
  41.         _count++;
  42.         if(_count==2)
  43.             break;
  44.            
  45.        // if(i>=n)
  46.      //   {
  47.             if(i+k-1>=n)
  48.             {
  49.                // cout<<i;
  50.                 ll x=0;
  51.                 for(int j=i; j<n;j++)
  52.                     x+=v[j];
  53.                 //cout<<x;
  54. //                cout<<i<<endl;
  55. //                int x=abs(n-(i+k));
  56. //                cout<<x<<endl;
  57. //                i=i+x;
  58. //                cout<<sum[i]<<"213";
  59.                 ans+=x;
  60.                 break;
  61.             }
  62.       //  }
  63.     }
  64.     cout<<ans<<endl;
  65.  
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement