CodeForces - 1189A ----Keanu Reeves

原题传送

在这里插入图片描述
INPUT
在这里插入图片描述
Output
在这里插入图片描述
Examples

在这里插入图片描述
题意
有个长度我n的字符串,然后把它分成k分,要使每份都good且为正数(good的要求为该数中0和1的个数不同),求输出最小的结果(答案不唯一输出一个即可)
难度
题解果然是cf典型的A题,只要能想明白,难度并不大
第一步:先判断整体1和0的个数,如果不同直接输出1和它本身
第二步:如果不同,先输出二(因为最小的结果就是拆成两个字符串,让两个都good),然后将第一个数和后面所有数拆开输出,这样后面的数绝对满足good(因为它原本1和0相等,现在拆走一个就肯定不相等),这样就OK了。
这个题简单就在于答案很多,满足一个即可,而最简单的就是把第一个数和后面拆开。

#include<bits/stdc++.h>//万能头文件让我快乐
using namespace std;
int main()
  {
  	int ans1,ans2;
      int n;
      string m;
      while(~scanf("%d"),&n)
      {
          cin >> m;
         ans1= 0,ans2 = 0;
         for(int i = 0;i < n;i++)
         {
             if(m[i] == '1') ans1++;
             else ans2++;
         }
         if(ans2 != ans1)
		 cout <<1<<endl<<m<< endl;
         else
		{
         	printf("2\n");
         	printf("%d",m[0]);
             for(int i = 1;i < n;i++)cout << m[i];
             cout << endl;
        }
     }
     return 0;
 }

每天水A题,天天没烦恼。。。
(下回做点难的,不能再混了。。)

posted @ 2019-10-14 00:45  回归梦想  阅读(94)  评论(0编辑  收藏  举报