#include<bits/stdc++.h>
using namespace std;
int ans, tot, n;
struct node{
int c, r;
} a[100010], b[100010];
inline bool cmp(node p, node q){//按花色排序
if(p.c == q.c) return p.r < q.r;
return p.c < q.c;
}
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d%d", &b[i].c, &b[i].r);
sort(b+1, b+n+1, cmp);
int cnt = 0;
for(int i = 1; i <= n; i++)
if(b[i-1].c != b[i].c || b[i-1].r != b[i].r)//把完全相同的去掉
a[++cnt] = b[i];
for(int i = 1; i <= cnt; i++){
tot = 0;
for(int j = i; j >= 1; j--){
if(a[i].c == a[j].c && a[i].r-a[j].r+1 <= n) tot++;//i,j中间的牌一定可以通过转移其他牌得到
else break;
}
ans = max(ans, tot);
}
printf("%d\n", n-ans);
return 0;
}
SDSC 2017 Day1 T2 && 洛谷 2652 同花顺
最新推荐文章于 2021-11-20 22:39:31 发布