五一训练礼包 M - 13

本题要求删除元素让剩下的元素形成类似金字塔的元素列:先递增到最大值后又递减(题目中的good元素列)。要求删除的前缀最短,即是余下的后缀最长,所以从后遍历,先递增再递减,遍历到最后一个元素其下标就是删除的元素数。
#include<stdio.h>
int main()
{
	int t,i;
	scanf("%d",&t);
	while(t--)
	{
	 int a[200002],n,x=0,ans=0;
	 scanf("%d",&n);
	 for(i=0;a[i]!=0;i++)
	 {
	 	a[i]=0;
	 }
	 for(i=0;i<n;i++)
	 {
	 	scanf("%d",&a[i]);
	 }
	 for(i=n-1;i>=0;i--)
	 {
	 	if(a[i-1]<a[i])
	 	x++;
	 	if((a[i-1]>a[i])&&x>0)
	 	{
	 		ans=i;break;
		}
	 }
	 printf("%d\n",ans);
	}
	return 0;
} 

#学习路径#
全部评论

相关推荐

点赞 评论 收藏
转发
华为 池子泡半年 总包和华为13级一致,公积金10%,单人一室一厅公寓
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务