#include<bits/stdc++.h>usingnamespacestd;classSolution{public:boolcanArrange(vector<int>&arr,intk);};boolSolution::canArrange(vector<int>&a,intk){intn=a.size();vector<int>rem_freq(k);// Handle negative modulo.
for(inti=0;i<n;i++){intmod=a[i]%k;mod=(mod+k)%k;rem_freq[mod]++;}// We don't need to worry about rem_freq[0]. If it is odd, the for loop
// would eventually fail some check.
for(inti=1;i<k;i++){intcomp=k-i;if(i==comp&&rem_freq[i]%2!=0){returnfalse;}elseif(rem_freq[i]!=rem_freq[comp]){returnfalse;}}returntrue;}