Submission #74235231


Source Code Expand

Copy
#include <stdio.h>
#include <stdlib.h>
int *ec, **es;
void ae(int f, int t) {
es[f] = realloc(es[f], sizeof(*es[f]) * (ec[f] + 1));
if (es[f] == NULL) exit(2);
es[f][ec[f]++] = t;
}
int *mincost;
int main(void) {
int n, m;
int i;
int *q, qs = 0, qe = 0;
int ans = 0;
if (scanf("%d%d", &n, &m) != 2) return 1;
ec = calloc(n + 1, sizeof(*ec));
es = calloc(n + 1 ,sizeof(*es));
mincost = malloc(sizeof(*mincost) * (n + 1));
q = malloc(sizeof(*q) * (n + 1));
if (ec == NULL || es == NULL || mincost == NULL || q == NULL) return 2;
for (i = 1; i <= n; i++) mincost[i] = n + 10;
for (i = 0; i < m; i++) {
int a, b;
if (scanf("%d%d", &a, &b) != 2) return 1;
ae(a, b);
ae(b, a);
}
mincost[1] = 0;
q[qe++] = 1;
while (qs < qe) {
int cur = q[qs++];
for (i = 0; i < ec[cur]; i++) {
int next = es[cur][i];
if (mincost[next] > mincost[cur] + 1) {
mincost[next] = mincost[cur] + 1;
q[qe++] = next;
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <stdio.h>
#include <stdlib.h>

int *ec, **es;

void ae(int f, int t) {
	es[f] = realloc(es[f], sizeof(*es[f]) * (ec[f] + 1));
	if (es[f] == NULL) exit(2);
	es[f][ec[f]++] = t;
}

int *mincost;

int main(void) {
	int n, m;
	int i;
	int *q, qs = 0, qe = 0;
	int ans = 0;
	if (scanf("%d%d", &n, &m) != 2) return 1;
	ec = calloc(n + 1, sizeof(*ec));
	es = calloc(n + 1 ,sizeof(*es));
	mincost = malloc(sizeof(*mincost) * (n + 1));
	q = malloc(sizeof(*q) * (n + 1));
	if (ec == NULL || es == NULL || mincost == NULL || q == NULL) return 2;
	for (i = 1; i <= n; i++) mincost[i] = n + 10;
	for (i = 0; i < m; i++) {
		int a, b;
		if (scanf("%d%d", &a, &b) != 2) return 1;
		ae(a, b);
		ae(b, a);
	}
	mincost[1] = 0;
	q[qe++] = 1;
	while (qs < qe) {
		int cur = q[qs++];
		for (i = 0; i < ec[cur]; i++) {
			int next = es[cur][i];
			if (mincost[next] > mincost[cur] + 1) {
				mincost[next] = mincost[cur] + 1;
				q[qe++] = next;
			}
		}
	}
	for (i = 2; i <= n; i++) {
		if (mincost[i] <= 2) ans++;
	}
	printf("%d\n", ans);
	return 0;
}

Submission Info

Submission Time
Task C - パーティー
User mikecat
Language C23 (GCC 14.2.0)
Score 100
Code Size 1090 Byte
Status AC
Exec Time 2 ms
Memory 1840 KiB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 0 ms 1708 KiB
data2 AC 0 ms 1612 KiB
data3 AC 0 ms 1708 KiB
data4 AC 0 ms 1708 KiB
data5 AC 2 ms 1840 KiB


2026-03-20 (Fri)
15:58:40 +09:00