为什么全是RE
查看原帖
为什么全是RE
344081
MilesHunter楼主2020/8/27 15:34
#include<iostream>
#include<cstdio>
using namespace std;
int a[1010],sum,num;
//num记录读入的数列长度,sum记录系统数,a[i]录第i套系统最新的高度 
int nu[1010],tail[1010],pos[1010],fre[1010],len=1;
//nu记录读入的数列,tail记录一个数列最尾端,pos记录位置,fre记录前驱 
int main()
{
	freopen("P1020_1.in","r",stdin); 
	while(scanf("%d",&nu[++num])&&getchar()!='\n')
	{
		bool flag=1;
		for(int i=1;i<=sum;i++)//389 207 155 300 299 170 158 65
			if(a[i]>=nu[num])
			{
				flag=0;
				a[i]=nu[num];
				break;
			}
		if(flag)a[++sum]=nu[num];
	}
	for(int i=1;i<=num;i++)
		fre[i]=i;
	tail[1]=nu[1];
	pos[1]=1;
	for(int i=2;i<=num;i++)
	{
		int j=len;
		while(nu[i]>tail[j]&&j>0)--j;
		if(!j)
		{
			tail[1]=nu[i];
			pos[1]=i;
		}
		else
		{
			if(j==len)++len;
			tail[j+1]=nu[i];
			pos[j+1]=i;
			fre[i]=pos[j];
		}
	}
	cout<<sum;
	return 0;
}

绝望,全部RE,求大佬帮忙。

2020/8/27 15:34
加载中...