题目链接: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;
}
}