ソースコード
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v[3];
int main(){
int n,sum=0;
cin>>n;
for(int i=0;i<n;i++){
int a;cin>>a;
v[a%3].push_back(a);
sum+=a;
}
for(int i=0;i<3;i++)sort(v[i].begin(),v[i].end());
if(sum%3==1){
if(v[1].size())sum-=v[1][0];
if(v[2].size()>1)sum=max(sum,sum-v[2][0]-v[2][1]);
}
if(sum%3==2){
if(v[2].size())sum-=v[2][0];
if(v[1].size()>1)sum=max(sum,sum-v[1][0]-v[1][1]);
}
if(sum%3>0||sum==0)cout<<"-1"<<endl;
else cout<<sum<<endl;
return 0;
}