41 lines
589 B
C
41 lines
589 B
C
#include <stdio.h>
|
|
|
|
#define MAX 100000
|
|
|
|
int G, P, gi, res;
|
|
int parent[MAX+1];
|
|
|
|
void init_uf();
|
|
int find(int x);
|
|
void Union(int x);
|
|
|
|
int main() {
|
|
scanf("%d %d", &G, &P);
|
|
init_uf();
|
|
|
|
for(int i=0; i<P; i++) {
|
|
scanf("%d",&gi);
|
|
|
|
if(find(gi) == 0) break;
|
|
|
|
Union(gi);
|
|
res++;
|
|
}
|
|
|
|
printf("%d\n", res);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void init_uf() {
|
|
for(int i=0; i<=G; i++) parent[i] = i;
|
|
}
|
|
|
|
int find(int x) {
|
|
if(x != parent[x]) return parent[x] = find(parent[x]);
|
|
return parent[x];
|
|
}
|
|
|
|
void Union(int x) {
|
|
parent[find(x)] = find(x)-1;
|
|
} |