社区讨论

EOF是什么问题

CF1009BMinimum Ternary String参与者 3已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@lo38tu2o
此快照首次捕获于
2023/10/24 02:40
2 年前
此快照最后确认于
2023/10/24 02:40
2 年前
查看原帖
一开始是这份代码TLE了,可这份代码的复杂度不是O(n)吗,为什么会TLE
CPP
#include <bits/stdc++.h>
using namespace std;
string ans;
bool f;
char a;
int sum; 
int main()
{
	while(cin>>a)
	{
		if(f)
		{
			if(a=='1')
			{
				ans='1'+ans;
			}
			else
			{
				ans=ans+a;
			}
		}
		else
		{
			if(a=='2')
			{
				f=1;
				ans='2';
				while(sum--)
				{
					cout<<'1';
				}
			}
			else if(a=='1')
			{
				sum++;
			}
			else
			{
				cout<<a;
			}
		}	
	}
	cout<<ans;
}
后来改成了这份,原来TLE的点过了,却EOF了
CPP
#include <bits/stdc++.h>
using namespace std;;
bool f;
char a,ans[100001];
int sum,cnt=1; 
int main()
{
	while(cin>>a)
	{
		if(f)
		{
			if(a=='1')
			{
				cout<<'1';
			}
			else
			{
				ans[cnt++]=a;
			}
		}
		else
		{
			if(a=='2')
			{
				f=1;
				ans[0]='2';
				while(sum--)
				{
					cout<<'1';
				}
			}
			else if(a=='1')
			{
				sum++;
			}
			else
			{
				cout<<a;
			}
		}	
	}
	cout<<ans;
	return 0;
}
1.为什么第一份代码会TLE
2.EOF是什么问题,应该怎么解决?

回复

9 条回复,欢迎继续交流。

正在加载回复...