码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces C. Devu and Partitioning of the Array

时间:2015-03-08 22:55:51      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

题意:给你n个数,然后分成k部分,每一个部分的和为偶数的有p个,奇数的有k-p个,如果可以划分,输出其中的一种,不可以输出NO;

思路:先输出k-p-1个奇数,再输出p-1个偶数,剩余的在进行构造。  奇数+奇数=偶数。

技术分享
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <vector>
 4 #include <iostream>
 5 #include <algorithm>
 6 #define maxn 1000100
 7 #define ll long long
 8 using namespace std;
 9 
10 int n,k,p;
11 ll a[maxn];
12 vector<int>qq;
13 vector<int>pp;
14 
15 int main()
16 {
17     scanf("%d%d%d",&n,&k,&p);
18     for(int i=1; i<=n; i++)
19     {
20         scanf("%lld",&a[i]);
21         if(a[i]%2==0) qq.push_back(a[i]);
22         else if(a[i]%2!=0) pp.push_back(a[i]);
23     }
24     int odd=pp.size();
25     int even=qq.size();
26     if(odd<k-p||(odd>=k-p&&even+(odd-(k-p))/2<p)||(odd-(k-p))%2==1)
27     printf("NO\n");
28     else
29     {
30         printf("YES\n");
31         for(int i=0; i<k-p-1; i++)
32         {
33             printf("%d %d\n",1,pp[i]);
34         }
35         int x=k-p-1;
36         int y=even;
37         if(x<0)x=0;
38         for(int i=0; i<p-1; i++)
39         {
40              if(y)
41              {
42                  printf("%d %d\n",1,qq[y-1]);
43                  y--;
44              }
45              else
46              {
47                  printf("%d %d %d\n",2,pp[x],pp[x+1]);
48                  x+=2;
49              }
50         }
51         if(k-p!=0&&p)
52         {
53             printf("%d %d\n",1,pp[x]);
54             x++;
55         }
56         if(x<0) x=0;
57         printf("%d ",y+odd-x);
58         while(y)
59         {
60             printf("%d ",qq[y-1]);
61             y--;
62         }
63         while(x<odd)
64         {
65             printf("%d ",pp[x]);
66             x++;
67         }
68         printf("\n");
69     }
70     return 0;
71 }
View Code

 

codeforces C. Devu and Partitioning of the Array

标签:

原文地址:http://www.cnblogs.com/fanminghui/p/4322299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!