제출 #342802

#제출 시각아이디문제언어결과실행 시간메모리
342802aryan12Swapping Cities (APIO20_swap)C++17
0 / 100
2082 ms19352 KiB
#include <bits/stdc++.h> using namespace std; #include "swap.h" const int MAXN = 1e5 + 10; int n, m; vector<pair<int, int> > g[MAXN]; vector<int> from, to, weights; vector<int> SecondOne[MAXN]; int paths[MAXN]; bool vis[MAXN]; void dfs(int node, int par) { vis[node] = true; for(int i = 0; i < SecondOne[node].size(); i++) { if(SecondOne[node][i] == par) continue; paths[SecondOne[node][i]]++; if(!vis[SecondOne[node][i]]) dfs(SecondOne[node][i], node); } } void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) { for(int i = 0; i < MAXN; i++) { g[i].clear(); } n = N; m = M; for(int i = 0; i < U.size(); i++) { from.push_back(U[i]); to.push_back(V[i]); weights.push_back(W[i]); g[U[i]].push_back({W[i], V[i]}); g[V[i]].push_back({W[i], U[i]}); } } int getMinimumFuelCapacity(int X, int Y) { //cout << "Coming here with X = " << X << ", Y = " << Y << endl; int l = 1, r = 1e9; int mid; int ans = -1; while(l <= r) { for(int i = 0; i < MAXN; i++) { vis[i] = false; SecondOne[i].clear(); paths[i] = 0; } paths[X] = 1; mid = (l + r) / 2; //cout << "l = " << l << ", mid = " << mid << ", r = " << r << endl; for(int i = 0; i < from.size(); i++) { if(weights[i] <= mid) { SecondOne[from[i]].push_back(to[i]); SecondOne[to[i]].push_back(from[i]); } } dfs(X, -1); if(paths[X] >= 2 && vis[Y]) { r = mid - 1; ans = mid; } else { l = mid + 1; } } return ans; }

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

swap.cpp: In function 'void dfs(int, int)':
swap.cpp:15:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i = 0; i < SecondOne[node].size(); i++) {
      |                    ~~^~~~~~~~~~~~~~~~~~~~~~~~
swap.cpp: In function 'void init(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
swap.cpp:30:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for(int i = 0; i < U.size(); i++) {
      |                    ~~^~~~~~~~~~
swap.cpp: In function 'int getMinimumFuelCapacity(int, int)':
swap.cpp:53:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |         for(int i = 0; i < from.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...