记录编号 |
403341 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2004]合唱队形 |
最终得分 |
100 |
用户昵称 |
Fisher. |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2017-05-09 21:44:24 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
inline int in()
{
char c=getchar();
int x=0;
while(c<'0'||c>'9')c=getchar();
for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
return x;
}
struct d
{
int s,x,lens,lenx;
};
d a[110];
int main()
{
freopen("chorus.in","r",stdin);
freopen("chorus.out","w",stdout);
int n;
n=in();
for(int i=1;i<=n;i++)
{
a[i].s=in();
a[i].x=a[i].s;
a[i].lens=a[i].lenx=1;
}
for(int i=2;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(a[j].s<a[i].s&&a[j].lens>=a[i].lens)
{
a[i].lens=a[j].lens+1;
}
}
}
for(int i=n-1;i>=1;i--)
{
for(int j=n;j>i;j--)
{
if(a[j].x<a[i].x&&a[j].lenx>=a[i].lenx)
{
a[i].lenx=a[j].lenx+1;
}
}
}
int maxx=0;
for(int i=1;i<=n;i++)
{
// cout<<a[i].lens<<" "<<a[i].lenx<<endl;
if(a[i].lens+a[i].lenx>maxx)maxx=a[i].lens+a[i].lenx;
}
cout<<n-(maxx-1)<<endl;
return 0;
}