제출 #121973

#제출 시각아이디문제언어결과실행 시간메모리
121973KLPPDesignated Cities (JOI19_designated_cities)C++14
7 / 100
516 ms43384 KiB
#include<bits/stdc++.h>

using namespace std;
typedef long long int lld;
typedef pair<lld,lld> pii;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define trav(a,v) for(auto a:v)
vector<pii> nei[200000];
vector<pii> inv[200000];
bool visited[200000];
lld size[200000];
lld size2[200000];
void DFS(int node){
  visited[node]=true;
  size[node]=0;
  trav(p,nei[node]){
    if(!visited[p.first]){
      DFS(p.first);
      size[node]+=size[p.first]+p.second;
      size2[p.first]=-p.second;
    }
  }
}

void DFS2(int node){
  visited[node]=true;
  trav(p,inv[node]){
    if(!visited[p.first]){
      //cout<<node<<" "<<p.first<<" "<<p.second<<endl;
      size2[p.first]+=size2[node]+p.second;
      DFS2(p.first);
    }
  }
}
int main(){
  int n;
  scanf("%d",&n);
  rep(i,0,n-1){
    int x,y;
    lld z,w;
    scanf("%d %d %lld %lld",&x,&y,&z,&w);
    x--;y--;
    nei[x].push_back(pii(y,z));
    nei[y].push_back(pii(x,w));
    inv[x].push_back(pii(y,w));
    inv[y].push_back(pii(x,z));
  }
  rep(i,0,n)visited[i]=false;
  DFS(0);
  size2[0]=size[0];
  rep(i,0,n)visited[i]=false;
  DFS2(0);
  lld ans=size2[0];
  rep(i,0,n){
    ans=min(ans,size2[i]);
    //cout<<size2[i]<<endl;
  }
  printf("%lld\n",ans);
  return 0;
}

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

designated_cities.cpp: In function 'int main()':
designated_cities.cpp:37:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d",&n);
   ~~~~~^~~~~~~~~
designated_cities.cpp:41:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %lld %lld",&x,&y,&z,&w);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...