Пример #1
0
int main(){
    int n;cin>>n;
    for(int i=0;i<n;++i){
        int t;cin>>t;
        if(t&1)o.pb(t);
        else e.pb(t);
    }
    sort(o.begin(),o.end()); reverse(o.begin(),o.end());
    // sort(e.begin(),e.end()); reverse(e.begin(),e.end());
    int mx=o[0],now=o[0];
    for(int i=1;i+1<o.size();i+=2){
        now+=o[i]+o[i+1];
        mx=max(mx,now);
    }
    for(int i:e)if(i>0)mx+=i;
    cout<<mx<<endl;
}
Пример #2
0
void go(int now,int pa){
    if(del[now])return;
    ans.pb(now);
    del[now]=1;
    for(int i:G[now]){
        if(i!=pa)go(i,now);
    }
}
Пример #3
0
void init(){
    for(int i=2;i<=1000;++i){
        if(!v[i])p.pb(i);
        for(int j=0;i*p[j]<=1000;++j){
            v[i*p[j]]=1;
            if(i%p[j]==0)break;
        }
    }
    for(int i:p)sp.insert(i);
}
Пример #4
0
void pnt(int lft,int st){
    pit(mx);el;
    while(lft>=st){
        ans.pb(st);
        lft-=st;
        ++st;
    }
    ans.back()+=lft;
    for(auto &i:ans)pit(i),spc;el;
}
Пример #5
0
int main(){
    int ts; cin>>ts; while(ts--){
        pos.clear();
        int n,k; cin>>n>>k; for(int i=0,t;i<n;++i){
            cin>>t; pos.pb(t);
        } sort(pos.begin(),pos.end());
        int L=0,R=1000000000,M; while(R>L){
            M=(L+R)>>1; if(can(M,k))R=M;
            else L=M+1;
        } cout<<L<<endl;
    }
}
Пример #6
0
void pdfs(int now){
    if(in[now])return;
    in[now]=1;
    for(int i:G[now])pdfs(i);
    tp.pb(now);
}