听灌多(玄关)
  • 板块灌水区
  • 楼主___STAR___
  • 当前回复11
  • 已保存回复11
  • 发布时间2024/8/20 19:25
  • 上次更新2024/8/20 21:51:50
查看原帖
听灌多(玄关)
947848
___STAR___楼主2024/8/20 19:25

题目

90pts Wa#1 求调教

#include<bits/stdc++.h>
using namespace std;
string s,s1,s2,s3;
int c;
bool pd;
int calc(double number)
{
   if (number==(int)number) return (int)number;
   if (number-(int)number<(int)number+1-number) return (int)number;
   else return (int)number+1;
}
int main()
{
	getline(cin,s);
	for(int i=0;i<s.size();i++)
	{
		if(islower(s[i])||isupper(s[i]))
		{
			s1+='.';
			c++;
		}
		else s1+=s[i];
	}
	int cc=c;
	c=calc(c*1.0/3);
	for(int i=0;i<s.size();i++)
	{
		if(islower(s[i])||isupper(s[i]))
		{
			if(c>0)
			{
				c--;
				s2+=s[i];
			}
			else
			{
				if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u') pd=true;
				s2+='.';
			}
		}
		else
		{
			s2+=s[i];
		}
	}
	if(!pd) c=calc(cc*2.0/3);
	for(int i=0;i<s.size();i++)
	{
		if(islower(s[i])||isupper(s[i]))
		{
			if(i<=cc)
			{
				s3+=s[i];
				cc--;
				if(c>0)
				c--; 
			}
			else if(c>0)
			{
				s3+=s[i];
				c--;
			}
			else if(s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'||s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u')
			{
				s3+=s[i];
			}
			else s3+='.';
		}
		else s3+=s[i];
	}
	cout<<s1<<"\n"<<s2<<"\n"<<s3;
}
2024/8/20 19:25
加载中...