codeforces C. Devu and Partitioning of the Array

來源:互聯網
上載者:User

標籤:

題意:給你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     else29     {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              else46              {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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.