제출 #842106

#제출 시각아이디문제언어결과실행 시간메모리
842106danikoynovClosing Time (IOI23_closing)C++17
컴파일 에러
0 ms0 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 2e5 + 10; vector < pair < int, ll > > adj[maxn]; ll dist[2][maxn]; int n; void bfs(int s, ll arr[]) { queue < int > q; for (int i = 0; i < n; i ++) arr[i] = -1; arr[s] = 0; q.push(s); while(!q.empty()) { int v = q.front(); q.pop(); for (pair < int, ll > nb : adj[v]) { if (arr[nb.first] == -1) { arr[nb.first] = arr[v] + nb.second; q.push(nb.first); } } } } const ll inf = 1e18; ll value[maxn]; ll dp[maxn][maxn * 2], sub[maxn], temp[maxn * 2]; int used[maxn]; vector < int > path; bool get_path(int v, int p, int target) { if (v == target) { path.push_back(v); return true; } for (pair < int, ll > nb : adj[v]) { if (nb.first == p) continue; if (get_path(nb.first, v, target)) { path.push_back(v); return true; } } return false; } int ans; int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W) { for (int i = 0; i < N; i ++) { dist[0][i] = dist[1][i] = 0; adj[i].clear(); used[i] = 0; value[i] = 0; } n = N; for (int i = 0; i < N - 1; i ++) { adj[U[i]].push_back({V[i], W[i]}); adj[V[i]].push_back({U[i], W[i]}); } bfs(X, dist[0]); bfs(Y, dist[1]); path.clear(); get_path(Y, -1, X); vector < ll > vec; for (int i = 0; i < N; i ++) { vec.push_back(dist[0][i]); vec.push_back(dist[1][i]); } sort(vec.begin(), vec.end()); ll sum = 0; for (int i = 0; i < vec.size(); i ++) { sum += vec[i]; if (sum > K) break; ans = max(ans, i + 1); } return ans; }

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

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:100:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |     for (int i = 0; i < vec.size(); i ++)
      |                     ~~^~~~~~~~~~~~
/tmp/ccwMWrcX.o: in function `__tcf_0':
closing.cpp:(.text+0x9): relocation truncated to fit: R_X86_64_PC32 against symbol `adj' defined in .bss section in /tmp/ccwMWrcX.o
/tmp/ccwMWrcX.o: in function `get_path(int, int, int)':
closing.cpp:(.text+0x417): relocation truncated to fit: R_X86_64_PC32 against symbol `adj' defined in .bss section in /tmp/ccwMWrcX.o
/tmp/ccwMWrcX.o: in function `bfs(int, long long*)':
closing.cpp:(.text+0x5d2): relocation truncated to fit: R_X86_64_PC32 against symbol `n' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x61e): relocation truncated to fit: R_X86_64_PC32 against symbol `adj' defined in .bss section in /tmp/ccwMWrcX.o
/tmp/ccwMWrcX.o: in function `max_score(int, int, int, long long, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)':
closing.cpp:(.text+0x7e8): relocation truncated to fit: R_X86_64_PC32 against symbol `dist' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x7ff): relocation truncated to fit: R_X86_64_PC32 against symbol `dist' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x80f): relocation truncated to fit: R_X86_64_PC32 against symbol `adj' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x853): relocation truncated to fit: R_X86_64_PC32 against symbol `value' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x862): relocation truncated to fit: R_X86_64_PC32 against symbol `n' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x87d): relocation truncated to fit: R_X86_64_PC32 against symbol `adj' defined in .bss section in /tmp/ccwMWrcX.o
closing.cpp:(.text+0x977): additional relocation overflows omitted from the output
/usr/bin/ld: failed to convert GOTPCREL relocation; relink with --no-relax
collect2: error: ld returned 1 exit status