Untitled

 avatar
unknown
c_cpp
4 months ago
936 B
4
Indexable
#include <bits/stdc++.h>
using namespace std;

int main() {
    int t;
    cin>>t;
    while(t--){
        int n; cin>>n;
        vector<int> rem(4);
        long long total= 0;
        for(int i=0;i<n;i++) {
            int elem;
            cin>>elem;
            total+= elem;
            rem[elem%4]++;
        }
        
        if(total %4 !=0){
            cout<<-1<<endl;
            continue;
        }
        int res=0;
        
        int r1r3= min(rem[1], rem[3]);
        
        res+= r1r3;
        rem[1]-=r1r3;
        rem[3]-=r1r3;
        
        if(rem[1]%2 != 0 || rem[3]%2 !=0){
            cout<<-1<<endl;
            continue;
        }
        res+= (rem[1]/2) + (rem[3]/2);
        
        rem[2]+= rem[1]/2;
        rem[2]+= rem[3]/2;
        
        if(rem[2]%2 !=0)
            cout<<-1<<endl;
        else
            cout<<res+ (rem[2]/2)<<endl;

    }
}
Editor is loading...
Leave a Comment