题目描述
牛牛有n个朋友,标号为0到n-1,每一个朋友最多有一个不喜欢的人,记为a[i],如果第i个人喜欢每一个人,a[i]=i现在牛牛需要邀请每一个人来参加一个聚会,但是他发现不同的邀请顺序会导致不同的结果,因为一旦某个人发现他不喜欢的人已经被邀请了他就不会来参加聚会,请问最多可以邀请多少个人来参加聚会
输入描述:
第一行输入一个整数n (1≤n≤50)
第二行输入n个整数0≤ai≤n−1
示例1
输入
2
0 1
输出
2
示例2
输入
2
1 0
输出
1
示例3
输入
4
1 0 3 2
输出
2
示例4
输入
6
5 2 2 4 5 0
输出
5
(贪心——一星)
Python
n=int(input())
l=[int(x) for x in input().split()]
count=len(l)
for i in range(n):
if l[i]<i:
count-=1
print(count)
C
#include<stdio.h>
int main()
{
int a[1000];
int n,count;
scanf("%d", &n);
count = n;
for(int i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
for (int j = 0; j < n; j++)
{
if (a[j] < j) count -= 1;
}
printf("%d\n", count);
return 0;
}