hnu_13269 Simple String

来源:互联网 发布:淘宝售后招聘 编辑:程序博客网 时间:2024/04/29 16:11
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=10000000+100;char a[maxn],b[maxn],c[maxn];int cnta[30],cntb[30],cntc[30];int main(){   while(~scanf("%s%s%s",a,b,c))  //把ABC看作特殊的集合(元素可以重复),C含于A交B,A交C元素个数大于等于N,<span style="font-family: Arial, Helvetica, sans-serif;">B交C元素个数大于等于N </span>   {       memset(cnta,0,sizeof(cnta));       memset(cntb,0,sizeof(cntb));       memset(cntc,0,sizeof(cntc));       int lena=strlen(a);       int lenb=strlen(b);       int lenc=strlen(c);       int flag=0;       for(int i=0;i<lena;i++)        cnta[a[i]-'A'+1]++;       for(int i=0;i<lenb;i++)        cntb[b[i]-'A'+1]++;        for(int i=0;i<lenc;i++)        cntc[c[i]-'A'+1]++;        int sa=0,sb=0;        for(int i=1;i<=26;i++)        {            if(cnta[i]+cntb[i]<cntc[i])  { printf("NO\n"); flag=1; break;}            sa+=min(cnta[i],cntc[i]);            sb+=min(cntb[i],cntc[i]);        }        if(flag) continue;        if((sa>=lenc/2)&&(sb>=lenc/2)) printf("YES\n");        else printf("NO\n");   }   return 0;}
headache..TAT熬夜伤身啊

0 0