CF——#109div1 A

来源:互联网 发布:五子棋雾化器做芯数据 编辑:程序博客网 时间:2024/04/28 19:37

题目链接:http://codeforces.com/problemset/problem/154/A


小结:竟然能够奇葩的读出b是任意长度的字符串,结果白白浪费了这么长的时间。(下次一定要读懂啊)


源代码:


#include<iostream>
using namespace std;
#define min(a,b) a>b?b:a
int main()
{
char a[100005];
int num;
int i,j;
int k;
char b[2];
int count;
int  mid1,mid2,mid3,mid4;
while(cin>>a)
{
count=0;
cin>>num;


for(i=0;i<num;i++)
{
  cin>>b;
  for(j=0;a[j]!='\0';j++)
  {
  mid1=mid2=0;
  if(a[j]==b[0])
   {
   j++;
   if(a[j]=='\0') break;
   
   mid1=1;
   
   if(a[j]==b[1]) {count++;continue;}
   
 while(a[j]==b[0]||a[j]==b[1])
   {
   while(a[j]!='\0'&&a[j]==b[0]){mid1++;j++;}
   while(a[j]!='\0'&&a[j]==b[1]){mid2++;j++;}
   if(a[j]=='\0') break;
   }
   
   count+=(min(mid1,mid2));
   }
   else if(a[j]==b[1])
   {
   j++;
   mid1=1;
   
   if(a[j]==b[0]) {count++;continue;}
   while(a[j]==b[0]||a[j]==b[1])
   {
while(a[j]!='\0'&&a[j]==b[1]){mid1++; j++;}
     
      while(a[j]!='\0'&&a[j]==b[0]){mid2++; j++;}
       if(a[j]=='\0') break;
   }
   
   count+=(min(mid1,mid2));
   }
  }
  }
  cout<<count<<endl;
}
}