Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
935 B
17
Indexable
Never
public class Solution {
    public int solve(ArrayList<Integer> A) {
        int mod=(int)Math.pow(10,9)+7;
        long ans=0;
        for(int i=0;i<31;i++){
            ArrayList<Integer> B=new ArrayList<>();
            for(int j=0;j<A.size();j++){
                if(((A.get(j)>>i)&1)==1){
                    B.add(1);
                }
                else{
                    B.add(0);
                }
            }
            int size=B.size();
            long sum=0;
            int lastseen=B.size();
            for(int k=B.size()-1;k>-1;k--){
                if(B.get(k)==1){
                    lastseen=k;
                    sum=sum+(size-k);
                }
                else{
                    sum=sum+(size-lastseen);
                }
            }
            long l=sum*(int)Math.pow(2,i);
            ans=(ans%mod+l%mod)%mod;
        }
        return (int)ans;
    }
}