제출 #896912

#제출 시각아이디문제언어결과실행 시간메모리
896912ErJ봉쇄 시간 (IOI23_closing)C++17
8 / 100
77 ms23888 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define vi vector<ll> #define vvi vector<vector<ll>> #define vs vector<string> #define vc vector<char> #define vb vector<bool> #define vp vector<pair<ll, ll>> #define pp pair<ll, ll> #define qi queue<ll> #define qp queue<pp> #define pqi priority_queue<ll> #define pqp priority_queue<pp> #define mi map<ll, ll> #define mpi map<pp, ll> #define mip map<ll, pp> #define mpp map<pp, pp> #define mb map<ll, bool> #define si set<ll> #define sp set<pp> #define mod 1000000007 #define rep(a, b) for(int a = 0; a < (b); a++) #define inf 10000000000 int max_score(int N, int X, int Y, ll K, vector<int> U, vector<int> V, vector<int> W) { vector<vector<pair<ll, ll>>> edges(N); // kam, delka rep(i, U.size()) { edges[U[i]].push_back({ V[i], W[i] }); edges[V[i]].push_back({ U[i], W[i] }); } vb was(N); rep(i, N) was[i] = false; pqp pq; ll ans = 0; ll K2 = K; pq.push({ 0, X }); pq.push({ 0, Y }); while (!pq.empty()) { ll u = pq.top().second; ll du = -pq.top().first; pq.pop(); if (was[u]) continue; was[u] = true; if (K2 < du) { break; } K2 -= du; ans++; for (int i = 0; i < edges[u].size(); i++) { ll v = edges[u][i].first; if (!was[v]) { pq.push({ -(du + edges[u][i].second), v }); } } } 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:25:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 | #define rep(a, b) for(int a = 0; a < (b); a++)
      |                                    ^
closing.cpp:30:5: note: in expansion of macro 'rep'
   30 |     rep(i, U.size()) {
      |     ^~~
closing.cpp:52:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |         for (int i = 0; i < edges[u].size(); i++) {
      |                         ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...