求助,请问一下为什么全RE求助QWQ
查看原帖
求助,请问一下为什么全RE求助QWQ
672837
DaShabby楼主2023/2/2 19:25
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=3e5+44;
ll inf=1e14,MAX=-1e14;
int tot,idx,cnt;
int MOD=1e6+7;
//int dp[2000][4000];
int a[maxn],que[maxn];
void work(){
	int n=0,res=0;
	char ch=getchar();
	while(ch!='\n'){
		if(isdigit(ch))res=res*10+ch-'0';
		else a[++n]=res,res=0;
		ch=getchar();
	}
	a[++n]=res;
	que[++cnt]=a[1];
	for(int i=2;i<=n;i++){
		if(a[i]<=que[cnt])que[++cnt]=a[i];
		else{
			int l=1,r=cnt,ans=0;
			while(l<=r){
				int mid=(l+r)/2;
				if(que[mid]<a[i])r=mid-1,ans=mid;
				else l=mid+1;
			}
			que[ans]=a[i];
		}
	}
	printf("%d\n",cnt);
	cnt=1;
	for(int i=2;i<=n;i++){
		if(a[i]>que[cnt])que[++cnt]=a[i];
		else{
			int l=1,r=cnt,ans=0;
			while(l<=r){
				int mid=(l+r)/2;
				if(que[mid]>=a[i])r=mid-1,ans=mid;
				else l=mid+1;
			}
			que[ans]=a[i];
		}
	}
	printf("%d\n",cnt);
//	for(int i=1;i<=cnt;i++)cout<<que[i]<<' ';
} 
int main(){
	work();
	return 0;
}
2023/2/2 19:25
加载中...