# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
95454 | bacegen4o | Paths (BOI18_paths) | C11 | 255 ms | 15196 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<assert.h>
#include<stdbool.h>
#include<limits.h>
typedef long long ll;
#define resizeArray(ptr, type, size) ((type*)realloc(ptr, (size) * sizeof(type)))
int *pushback(int *array, int *size, int value) {
int *output = resizeArray(array, int, *size + 1);
output[(*size)++] = value;
return output;
}
typedef struct{
int*ptr;
int sz;
}vec;
vec newVec() {
vec rez;
rez.ptr = NULL;
rez.sz = 0;
return rez;
}
vec*graph;
int main() {
int n, m, k, a, b;
scanf("%d %d %d", &n, &m, &k);
int colors[n];
graph = calloc(n, sizeof(vec));
for(int c1=0; c1<n; c1++){
scanf("%d", &colors[c1]);
colors[c1]--;
}
for(int c1 = 0; c1 < m; c1++){
scanf("%d %d", &a, &b);
a--, b--;
graph[a].ptr = pushback(graph[a].ptr, &graph[a].sz, b);
graph[b].ptr = pushback(graph[b].ptr, &graph[b].sz, a);
}
ll ans = 0;
for(int c1=0; c1<n; c1++){
ll F[3] = {0};
for(int c2 = 0; c2 < graph[c1].sz; c2++)
F[colors[graph[c1].ptr[c2]]]++;
F[colors[c1]] = 0;
ans += 2*(F[0]*F[1]+F[0]*F[2]+F[1]*F[2])+F[0]+F[1]+F[2];
}
printf("%lld\n", ans);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |