Submission #864112

#TimeUsernameProblemLanguageResultExecution timeMemory
864112Ice_manTruck Driver (IOI23_deliveries)C++17
29 / 100
5546 ms20240 KiB
#include "deliveries.h" #include <iostream> #include <vector> #define maxn 100005 #define maxq 300005 #define INF 1000000010 #define endl '\n' using namespace std; long long n; long long t[maxn]; long long c[maxn]; vector <pair <int , int> > v[maxn]; long long ans; long long pom; void dfs(long long node , long long parent) { c[node] = t[node]; for(long long i = 0; i < (long long)v[node].size(); i++) { if(v[node][i].first == parent) continue; dfs(v[node][i].first , node); ans += v[node][i].second * min(c[v[node][i].first] , pom - c[v[node][i].first]) * 2; c[node] += c[v[node][i].first]; } } void init(int N, vector<int> U, vector<int> V, vector<int> W, vector<int> T) { pom = 1; n = N; ///cout << pom << endl; for(long long i = 0; i < (long long)U.size(); i++) v[U[i]].push_back({V[i] , W[i]}); for(long long i = 0; i < (long long)V.size(); i++) v[V[i]].push_back({U[i] , W[i]}); for(long long i = 0; i < T.size(); i++) pom += T[i]; ///cout << pom << endl; for(long long i = 0; i < T.size(); i++) t[i] = T[i]; } long long max_time(int S , int X) { pom -= t[S]; pom += X; t[S] = X; ans = 0; dfs(0 , -1); return ans; } /**int main() { init(5, {0, 0, 1, 1}, {1, 2, 3, 4}, {1, 2, 3, 1}, {0, 0, 1, 0, 1}); cout << max_time(0 , 1) << endl; return 0; }*/

Compilation message (stderr)

deliveries.cpp: In function 'void init(int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
deliveries.cpp:48:28: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(long long i = 0; i < T.size(); i++) pom += T[i];
      |                          ~~^~~~~~~~~~
deliveries.cpp:52:28: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |     for(long long i = 0; i < T.size(); i++) t[i] = T[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...