PAT B1045 PTA | 程序设计类实验辅助教学平台
PAT A1101 PTA | 程序设计类实验辅助教学平台
笔者五个测试点全部都显示格式错误,而本地用自己写的样例测试时的输出结果又和网上其他大佬的代码一样(肉眼上一样),经过搜索发现测试点2是由于0个主元时需要输出两个换行符,测试点2得到了解决,但测试点1,3,4,5仍然是格式错误。经过仔细研究,才发现自己输出结果的一个不好习惯,即最后输出时会多输出一个空格。
for(int i=1;i<=ans;i++)
cout<<temp[i]<<" ";
血泪教训,希望引以为戒!
下面是AC代码
#include<bits/stdc++.h>
using std::cin;
using std::cout;
using std::endl;
int right[100005],left[100005];
int a[100005];
int temp[100005];
int ans;
signed main()
{
int n;
cin>>n;
left[1]=-1;
right[n]=0x3fffffff;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(i!=1) left[i]=std::max(left[i-1],a[i-1]);
}
for(int i=n-1;i>=1;i--)
{
right[i]=std::min(right[i+1],a[i+1]);
}
for(int i=1;i<=n;i++)
{
if(a[i]>left[i]&&a[i]<right[i])
{
ans++;
temp[ans]=a[i];
}
}
if(ans!=0)
{
cout<<ans<<endl;
std::sort(temp+1,temp+1+ans);
for(int i=1;i<=ans-1;i++)
cout<<temp[i]<<" ";
cout<<temp[ans];
}
else cout<<0<<endl<<endl;
return 0;
}