제출 #980003

#제출 시각아이디문제언어결과실행 시간메모리
980003vjudge1봉쇄 시간 (IOI23_closing)C++17
0 / 100
888 ms2097152 KiB
#include "closing.h" using namespace std; #include <bits/stdc++.h> #define pb push_back using lli=long long; #define deb(x) cout<<#x<<": "<<x<<endl; int max_score(int N, int X, int Y, long long K, vector<int> U, vector<int> V, vector<int> W) { lli ans=0; vector<vector<pair<lli,lli>>> adj (N); vector<vector<lli>> mat (N, vector<lli> (N, -1)); for(lli i=0; i<N-1; ++i){ adj[U[i]].pb({V[i], W[i]}); adj[V[i]].pb({U[i], W[i]}); mat[U[i]][V[i]]=W[i]; mat[V[i]][U[i]]=W[i]; } lli init=0; lli last=0; lli ant=0;/* while(adj[init].size()==2){ if(adj[init][0].first!=ant){ ant=init; init=adj[init][0].first; } else{ ant=init; init=adj[init][1].first; } } ant=init; last=adj[init][0].first; while(adj[last].size()==2){ if(adj[last][0].first!=ant){ ant=last; last=adj[last][0].first; } else{ ant=last; last=adj[last][1].first; } } vector<lli> ord; lli rec=init; ant=init; while(rec!=last){ // cout<<"rec: "<<rec<<endl; ord.pb(rec); if(adj[rec][0].first!=ant){ ant=rec; rec=adj[rec][0].first; } else{ ant=rec; rec=adj[rec][1].first; } } ord.pb(rec); vector<lli> numb(N); for(lli i=0; i<N; ++i){ numb[ord[i]]=i; } if(numb[X]>numb[Y]){ swap(X,Y); } for(lli i=numb[X]; i>=0; --i){ vector<lli> values (N, 0); lli cont=K; for(lli a=numb[X]-1; a>=i; --a){ values[a]=values[a+1]+mat[ord[a+1]][ord[a]]; cont-=values[a]; } if(cont<0) break; lli ayuda=cont; for(lli j=numb[X]; j<N; ++j){ cont=ayuda; for(lli a=numb[X]+1; a<=j; ++a){ values[a]=values[a-1]+mat[ord[a-1]][ord[a]]; cont-=values[a]; } if(cont<0) break; lli aux=j-i+1; priority_queue<pair<lli,lli>, vector<pair<lli,lli>>, greater<pair<lli,lli>>> pq; vector<bool> visited (N, false); pq.push({0, numb[Y]}); while(!pq.empty()){ lli a=pq.top().first; lli b=pq.top().second; pq.pop(); if(visited[b]) continue; visited[b]=true; if(cont>=a){ cont-=a; aux++; if(b+1<N && !visited[b+1]){ pq.push({max(a+mat[ord[b]][ord[b+1]]-values[b+1],0ll), b+1}); } if(b-1>=0 && !visited[b-1]){ pq.push({max(a+mat[ord[b]][ord[b-1]]-values[b-1],0ll), b-1}); } } else{ break; } } ans=max(ans, aux); } }*/ 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:21:9: warning: unused variable 'init' [-Wunused-variable]
   21 |     lli init=0;
      |         ^~~~
closing.cpp:22:9: warning: unused variable 'last' [-Wunused-variable]
   22 |     lli last=0;
      |         ^~~~
closing.cpp:23:9: warning: unused variable 'ant' [-Wunused-variable]
   23 |     lli ant=0;/*
      |         ^~~
#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...