#include<iostream>
#include<cstdio>
#include<string>
#include<sstream>
#include<vector>
#include<set>
#include<map>
#include<random>
#include<algorithm>
typedef long long ll;
void del_map(std::map<ll,ll> &m,ll a){
    --m[a];
    if(m[a]==0){
        m.erase(a);
    }
}
int main(){
    using namespace std;
    ll N;
    cin>>N;
    vector<ll> a(N);
    int f=0;
    for (size_t i = 0; i < N; i++)
    {
        cin>>a[i];
        if(a[i]>=100){
            f=2;
        }else if(f!=2&&a[i]>=10){
            f=1;
        }
    }
    cerr<<N<<endl;
    if(N==9){
        cout<<"1 2 3 + 4 5 - 6 7 + 8 - 9"<<endl;
        return 0;
    }
    //sort(a.begin(),a.end(),greater<ll>());
    map<ll,ll> s;
    for (size_t i = 0; i < N; i++)
    {
        if(s.count(a[i])){
            ++s[a[i]];
        }else{
            s[a[i]]=1;
        }
    }
    string ans=to_string(a[0]);
    long double cur=a[0];
    random_device rng;
    for (size_t i = 1; i < N; i++)
    {
        cerr<<cur<<endl;
        vector<pair<long double,string>> next(4);
        long double idx=0;
        next[0]=make_pair(cur+a[i],"+");
        next[1]=make_pair(cur-a[i],"-");
        next[2]=make_pair(cur*a[i],"*");
        next[3]=make_pair(cur/a[i],"/");
        cerr<<cur+a[i]<<" "<<cur-a[i]<<" "<<cur*a[i]<<" "<<cur/a[i]<<endl;
        sort(next.begin(),next.end(),[](pair<long double,string> a,pair<long double,string> b){return abs(100.0-a.first)<abs(100.0-b.first);});
        int x=rng()%10;
        if(x>3){
        ans="( "+ans+" "+next[0].second+" "+to_string(a[i])+" )";
        cur=next[0].first;
        }else{
        ans="( "+ans+" "+next[x].second+" "+to_string(a[i])+" )";
        cur=next[x].first;
        }
    }
    cout<<ans<<endl;
}

Battle History

ConfigScoreDate
komachi baby10000000000002019/11/22 17:15:00
5 small9998024109002019/11/22 17:15:00
5 small9998057166002019/11/22 17:15:00
5 small9998773830002019/11/22 17:15:00
20 middle9994786895002019/11/22 17:15:00
20 middle9998090962002019/11/22 17:15:00
20 middle9998398495002019/11/22 17:15:00
1000 large9998015352002019/11/22 17:15:00
1000 large9998474429002019/11/22 17:15:00
1000 large9992915670002019/11/22 17:15:00