제출 #1198148

#제출 시각아이디문제언어결과실행 시간메모리
1198148NDT134Coreputer (IOI23_coreputer)C++20
컴파일 에러
0 ms0 KiB
#include "coreputer.h" #include <cassert> #include <cstdio> #include <string> #include <vector> #include<iostream> static constexpr int maxDiagnostics = 32; static int diagnostic_counter = 0; static int malfunctioningCores = 0; static int N; static std::vector<int> M; static inline void protocol_violation(std::string message) { printf("Protocol Violation: %s\n", message.c_str()); exit(0); } int run_diagnostic(std::vector<int> T) { ++diagnostic_counter; if (diagnostic_counter > maxDiagnostics) { protocol_violation("too many calls"); } int l = T.size(); if (l > N) { protocol_violation("invalid array"); } for (int i = 0; i < l; ++i) { if (T[i] < 0 || T[i] >= N) { protocol_violation("invalid array"); } for (int j = 0; j < i; ++j) { if (T[i] == T[j]) { protocol_violation("invalid array"); } } } int malfunctioningTaggedCores = 0; for (int i : T) { if (M[i] == 1) malfunctioningTaggedCores++; } int malfunctioningUntaggedCores = malfunctioningCores - malfunctioningTaggedCores; if (malfunctioningTaggedCores > malfunctioningUntaggedCores) { return 1; } if (malfunctioningTaggedCores == malfunctioningUntaggedCores) { return 0; } return -1; } using namespace std; int main() { //assert(1 == scanf("%d", &N)); cin >> N; M.resize(N); for (int i = 0; i < N; ++i) { //assert(1 == scanf("%d", &M[i])); cin >> M[i]; malfunctioningCores += M[i]; } if (malfunctioningCores == 0) { //printf("No Malfunctioning Core\n"); cout << "No Malfunctioning Core\n"; exit(0); } std::vector<int> c = malfunctioning_cores(N); int n = c.size(); for (int i = 0; i < n; ++i) { //printf(i == 0 ? "%d" : " %d", c[i]); cout << c[i] << " "; } //printf("\n"); //printf("%d\n", diagnostic_counter); cout << "\n" << diagnostic_counter << "\n"; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccwjku2c.o: in function `run_diagnostic(std::vector<int, std::allocator<int> >)':
stub.cpp:(.text+0xd0): multiple definition of `run_diagnostic(std::vector<int, std::allocator<int> >)'; /tmp/cc3CqAwg.o:coreputer.cpp:(.text+0x30): first defined here
/usr/bin/ld: /tmp/ccwjku2c.o: in function `main':
stub.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc3CqAwg.o:coreputer.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc3CqAwg.o: in function `main':
coreputer.cpp:(.text.startup+0xe2): undefined reference to `malfunctioning_cores(int)'
/usr/bin/ld: /tmp/ccwjku2c.o: in function `main':
stub.cpp:(.text.startup+0x4a): undefined reference to `malfunctioning_cores(int)'
collect2: error: ld returned 1 exit status