Advertisement
Adnan_Sarker

SPOJ GSHOP

Feb 2nd, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define pb push_back
  3. #define read freopen("input.txt","r",stdin)
  4. #define write freopen("output.txt","w",stdout)
  5. #define rev(s) std::reverse(s.begin(), s.end())
  6. //#define up std::transform(s.begin(), s.end(), s.begin(), ::toupper);
  7. ///string sb=s.substr(1,3);
  8.  
  9. #define gcd(a,b) __gcd(a,b)
  10. #define lcm(a,b) (a*b)/gcd(a,b)
  11.  
  12. #define min3(a,b,c) min(a,min(b,c))
  13. #define max3(a,b,c) max(a,max(b,c))
  14. #define min4(a,b,c,d) min(min(a,b),min(c,d))
  15. #define max4(a,b,c,d) max(max(a,b),max(c,d))
  16.  
  17. #define INF (1<<28)
  18. #define mod 1000000007
  19.  
  20. #define tbeg clock_t _t=clock();
  21. #define tend cout << "\n\nTime: " << (double)(clock()-_t)/CLOCKS_PER_SEC;
  22.  
  23. #define PI 2*acos(0.0)
  24. #define low std::transform(s.begin(), s.end(), s.begin(), ::tolower);
  25. #define n2s(n) stringstream ss; ss<<n; string Get=ss.str()
  26. #define CC(x) cout<<(x)<<endl
  27. #define srt sort(a,a+n)
  28. #define rep(i,n) for(int i=0;i<n;i++)
  29. #define per(i,n) for(int i=n-1;i>=0;i--)
  30.  
  31. typedef long long LL;
  32.  
  33. using namespace std;
  34.  
  35. int main()
  36. {
  37.     LL t, n, k, a[105];
  38.     cin>>t;
  39.     while(t--)
  40.     {
  41.         cin>>n>>k;
  42.         LL neg = 0, zero = 0, ans = 0;
  43.         memset(a,0,sizeof a);
  44.         rep(i,n)
  45.         {
  46.             cin>>a[i];
  47.             if(a[i]<0){neg++;}
  48.             else if(a[i]==0){zero++;}
  49.         }
  50.         sort(a,a+n);
  51.         if(neg==0){
  52.             if(k%2){a[0] = a[0]*-1;}
  53.             rep(i,n){ans = ans + a[i];}
  54.         }
  55.         else if(neg<=k)
  56.         {
  57.             k = k - neg;
  58.             if(k%2!=0)
  59.             {
  60.                 if(zero==0){neg = neg - 1;}
  61.             }
  62.             rep(i,neg){a[i] = a[i]*-1;}
  63.             rep(i,n){ans = ans + a[i];}
  64.         }
  65.         else
  66.         {
  67.             rep(i,k){a[i] = a[i]*-1;}
  68.             rep(i,n){ans = ans + a[i];}
  69.         }
  70.         cout<<ans<<endl;
  71.     }
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement