You are viewing a single comment's thread. Return to all comments →
My code in java :- public static void main(String[] args) { InputReader in = new InputReader(System.in); int n=in.readInt(), k=in.readInt(), count=k;
if(2*k>n){ k=n-k; count =k;} long ar[] = new long[n]; for(int i=0; i<n; i++) ar[i]=in.readLong(); Arrays.sort(ar); //Array sorted long[] set1 = new long[k]; long[] set2 = new long[n-k]; int ptrl=n/2, ptrr=ptrl, sptr1=0, sptr2=0; set1[sptr1++]=ar[ptrl]; count--; ptrl-=2; ptrr+=2; while(count>0){ set2[sptr2++]=ar[ptrl+1]; set2[sptr2++]=ar[ptrr-1]; set1[sptr1++]=ar[ptrl]; count--; ptrl-=2; if(count>0){ set1[sptr1++]=ar[ptrr]; count--; } } ptrl++; while(ptrl>=0){ set2[sptr2++]=ar[ptrl]; ptrl--; } int p=n-1; while(sptr2!=(n-k)){ set2[sptr2++]=ar[p]; p--; } //calculate diff long ans=0; for(int i=0; i<k; i++){ for(int j=0; j<(n-k); j++){ ans+=(long)Math.abs(set1[i]-set2[j]); } } System.out.print(ans); }
Seems like cookies are disabled on this browser, please enable them to open this website
Fair Cut
You are viewing a single comment's thread. Return to all comments →
My code in java :- public static void main(String[] args) { InputReader in = new InputReader(System.in); int n=in.readInt(), k=in.readInt(), count=k;