1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int a[1100],fup[1100],fdn[1100]; int main() { int n=1; while(scanf("%d",&a[n])!=EOF)n++; n--; fup[0]=0; for(int i=1;i<=n;i++) { fup[i]=1; for(int j=i-1;j>=1;j--) if(a[i]>a[j]) fup[i]=max(fup[i],fup[j]+1); } fdn[n+1]=0; for(int i=n;i>=1;i--) { fdn[i]=1; for(int j=i+1;j<=n;j++) if(a[i]>=a[j]) fdn[i]=max(fdn[i],fdn[j]+1); } int s1=0,s2=0;for(int i=1;i<=n;i++) s1=max(s1,fup[i]),s2=max(s2,fdn[i]); printf("%d\n%d\n",s2,s1); return 0; }#include<bits/stdc++.h> using namespace std; int a[1100],f1[1100],f2[1100]; int main() { int n=0,x; while(scanf("%d",&x)!=EOF)a[++n]=x; f1[0]=0; for(int i=1;i<=n;i++) { f1[i]=1; for(int j=i-1;j>=1;j--) if(a[i]>a[j]) f1[i]=max(f1[i],f1[j]+1); } f2[0]=0; for(int i=1;i<=n;i++) { f2[i]=1; for(int j=i-1;j>=1;j--) if(a[i]<=a[j]) f2[i]=max(f2[i],f2[j]+1); } int s1=0,s2=0;for(int i=1;i<=n;i++) s1=max(s1,f1[i]),s2=max(s2,f2[i]); printf("%d\n%d\n",s2,s1); return 0; }
- 1
信息
- ID
- 639
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 147
- 已通过
- 45
- 上传者