제출 #47224

#제출 시각아이디문제언어결과실행 시간메모리
47224robertChase (CEOI17_chase)C++14
70 / 100
997 ms197880 KiB
#include <iostream> #include <vector> #include <cstring> using namespace std; typedef vector<long long> vi; vector<vi> g; vector<vector<vector<long long> > > m; vi d; //gives the max difference long long solve(long long n, long long p, long long v){ if(v==0) return 0; // if(m[n][p][v]!=-1) // return m[n][p][v]; long long sum = 0; for(long long x=0; x<g[n].size(); x++){ if(g[n][x]!=p){ sum += d[g[n][x]]; } } long long sol = sum; for(long long x=0; x<g[n].size(); x++){ if(g[n][x]!=p){ if(m[n][x][v]==-1) m[n][x][v] = solve(g[n][x], n, v); if(m[n][x][v-1]==-1) m[n][x][v-1] = solve(g[n][x], n, v-1); sol = max(sol, max(sum+m[n][x][v-1], m[n][x][v])); } } return sol;//m[n][p][v] = sol; } int main(){ iostream::sync_with_stdio(false); cin.tie(0); // memset(m, -1, sizeof(m)); long long N, V; cin>>N>>V; g.assign(N+1, vi()); d.assign(N+1, 0); long long A, B; for(long long n=1; n<=N; n++) cin>>d[n]; for(long long n=1; n<N; n++){ cin>>A>>B; g[A].push_back(B); g[B].push_back(A); } m.assign(N+1, vector<vector<long long> >()); for(int x=1; x<=N; x++) m[x].assign(g[x].size(), vector<long long>(110, -1)); long long sol = 0; sol = solve(1, 0, V); for(long long x=2; x<=N&&N<10000; x++) sol = max(sol, solve(x, 0, V)); cout << sol << endl; return 0; }

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

chase.cpp: In function 'long long int solve(long long int, long long int, long long int)':
chase.cpp:19:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(long long x=0; x<g[n].size(); x++){
                     ~^~~~~~~~~~~~
chase.cpp:25:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(long long x=0; x<g[n].size(); x++){
                     ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...