Rt,样例、题解区和讨论区的hack数据都能通过,但是莫名只能得10分,求大佬指点
#include <bits/stdc++.h>
using namespace std;
string s;
bool isalp(char x)
{
if('a' <= x && x <= 'z' || 'A' <= x && x <= 'Z')
{
return true;
}
else return false;
}
bool isvowel(char x)
{
if(x == 'a' ||x == 'e' ||x == 'i' ||x == 'o' ||x == 'u' ||x == 'A' ||x == 'E' ||x == 'I' ||x == 'O' ||x == 'U' )
return true;
else return false;
}
int main()
{
getline(cin,s);
int L = s.size();
int cnt;
for(int i=0;i<L;i++)
{
if('a' <= s[i] && s[i] <= 'z' || 'A' <= s[i] && s[i] <= 'Z')
{
cout<<'.';
cnt++;
}
else cout<<s[i];
}
cout<<"\n";
double Q;
Q = 1.0 * cnt / 3;
int N = round(Q);
int N2 = round(2.0*cnt/3);
int f=0;
int ind=0;
for(int i=0;i<L;i++)
{
if(f < N)
{
ind++;
if(isalp(s[i]))
{
cout<<s[i];
f++;
}
else
cout<<s[i];
}
else
{
if(!isalp(s[i]))
cout<<s[i];
else
cout<<'.';
}
}
cout<<"\n";
bool flag;
for(int i=ind;i<L;i++)
{
if(isvowel(s[i]))
{
flag=1;break;
}
}
if(flag)
{
int f=0;
for(int i=0;i<L;i++)
{
if(f < N)
{
if(isalp(s[i]))
{
cout<<s[i];
f++;
}
else
cout<<s[i];
}
else
{
if(isvowel(s[i]))cout<<s[i];
else
if(isalp(s[i])) cout<<".";
else
cout<<s[i];
}
}
cout<<"\n";
}
else
{
f=0;
for(int i=0;i<L;i++)
{
if(f < N2)
{
ind++;
if(isalp(s[i]))
{
cout<<s[i];
f++;
}
else
cout<<s[i];
}
else
{
if(!isalp(s[i]))
cout<<s[i];
else cout<<'.';
}
}
cout<<"\n";
}
return 0;
}