zoukankan      html  css  js  c++  java
  • Codeforces Round #251 (Div. 2) C. Devu and Partitioning of the Array

    注意p的边界情况,p为0,或者 p为k

    奇数+偶数 = 奇数

    奇数+奇数 = 偶数

    #include <iostream>
    #include <vector>
    #include <set>
    #include <algorithm>
    #include <cmath>
    
    using namespace std;
    
    int main(){
        int n,k,p;
        long a;
        cin >> n >> k >> p;
        vector<long> even, odd;
        vector<set<long> > parts(k);
        for(int i = 0 ; i < n ; ++ i){
            cin >> a;
            a%2 ? odd.push_back(a): even.push_back(a);
        }
        int even_cnt = p, odd_cnt = k - p;
        if(odd.size() < odd_cnt  || (odd.size() -odd_cnt)%2 ) cout<<"NO"<<endl;
        else{
            for(int i = p; i < k ; ++ i)  parts[i].insert(odd[i-p]);
            if(even.size()+(odd.size()-odd_cnt)/2 < p) cout<<"NO"<<endl;
            else{
                if(even.size() >= p){
                    for(int i = 0 ; i < p; ++ i) parts[i].insert(even[i]);
                    for(int i = p; i < even.size(); ++ i) parts[p-1 >= 0 ? p-1 : p].insert(even[i]);
                    for(int i = k-p; i < odd.size() ; ++ i ) parts[p-1 >= 0 ? p-1 : p].insert(odd[i]);
    
                }else{
                    for(int i = 0 ; i < even.size(); ++ i) parts[i].insert(even[i]);
                    int j = k-p;
                    for(int i = even.size(); i < p-1; ++ i) parts[i].insert(odd[j++]),parts[i].insert(odd[j++]);
                    while( j < odd.size()) parts[p-1 >= 0 ? p-1 : p].insert(odd[j++]);
                }
                cout<<"YES"<<endl;
                for(int i = 0 ; i < k; ++ i){
                    set<long> tmp = parts[i];
                    cout<<tmp.size();
                    for(set<long>::iterator iter = tmp.begin(); iter!=tmp.end(); ++ iter) cout<<" "<<*iter;
                    cout<<endl;
                }
            }
        }
    }
  • 相关阅读:
    Gradle with Kotlin (二) 项目、Java项目、父子、同级共享代码
    Gradle with Kotlin (一) 安装、DSL、任务、插件
    辛弃疾
    Remote Method Invoke
    Webpack (一) 选项和配置
    《芙蓉女兒誄》
    js 原型链之我见
    js 库
    Gradle
    Spring Boot 入门
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3777107.html
Copyright © 2011-2022 走看看