```cpp
#include<bits/stdc++.h>
using namespace std;
int n,k,p,f[10005];
struct aug
{
int l;
int w;
}a[5001];
int cmp(aug a,aug b)
{
return a.l>b.l;
}
int main()
{
// freopen("stick.in","r",stdin);
// freopen("stick.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i].l>>a[i].w;
sort(a+1,a+1+n,cmp);
k=1;
f[k]=a[1].w;
for(int i=2;i<=n;i++)
{
p=0;
for(int j=1;j<=k;j++)
if(f[j]>=a[i].w)
{
if(p==0)p=j;
else if(f[j]<f[p])p=j;
}
if(p==0)
{
k++;
f[k]=a[i].w;
}
else f[p]=a[i].w;
}
cout<<k;
return 0;
}
```
# 请勿抄袭
# 仅供参考!!
by 操作! @ 2019-07-09 18:38:17
我也是第八个点错了,然后输入的时候,宽度长度反着输入就对了,很迷茫
by 三又二分之一 @ 2019-07-13 19:25:43
sort没有考虑w相同的情况
by lovelive__ @ 2019-07-13 20:53:57