#include <bits/stdc++.h>
using namespace std;
int main() {
/*
Optimization over priority-queue algorithm :-
If(largest>=(tot_sum)/2){answer = largest;}
else{
-> answer = tot_sum/2; (conditions applied)
}
*/
int n ;
cin>>n;
vector<int>a(n);
for(int i = 0 ;i < n ;i++){
cin>>a[i];
}
int ans = 0 ;
int x = *max_element(a.begin(),a.end());
int y = accumulate(a.begin(),a.end(),0);
if(x>=y/2){
ans = x;
}else{
if(y%2==0){
ans = y/2;
}else{
ans = y/2+1;
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKIC8qCiBPcHRpbWl6YXRpb24gb3ZlciBwcmlvcml0eS1xdWV1ZSBhbGdvcml0aG0gOi0gCgpJZihsYXJnZXN0Pj0odG90X3N1bSkvMil7YW5zd2VyID0gbGFyZ2VzdDt9CmVsc2V7Ci0+IGFuc3dlciA9IHRvdF9zdW0vMjsgKGNvbmRpdGlvbnMgYXBwbGllZCkKfQoKICovCiBpbnQgbiA7CiBjaW4+Pm47CiAKIHZlY3RvcjxpbnQ+YShuKTsKIGZvcihpbnQgaSA9IDAgO2kgPCBuIDtpKyspewogCWNpbj4+YVtpXTsKIH0KIGludCBhbnMgPSAwIDsKIGludCB4ID0gKm1heF9lbGVtZW50KGEuYmVnaW4oKSxhLmVuZCgpKTsKIGludCB5ID0gYWNjdW11bGF0ZShhLmJlZ2luKCksYS5lbmQoKSwwKTsKCiBpZih4Pj15LzIpewogCWFucyA9IHg7CiB9ZWxzZXsKIAkgaWYoeSUyPT0wKXsKIAlhbnMgPSB5LzI7CiAJIAkKIAkgfWVsc2V7CiAJIAlhbnMgPSB5LzIrMTsKIAkgfQogfQogCiBjb3V0PDxhbnM8PGVuZGw7CglyZXR1cm4gMDsKfQ==