이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define x first
#define y second
ll n,m;
vector<vector<pair<ll,ll>>> cad;
vector<pair<ll,ll>> Dijkstra(ll ini)
{
vector<pair<ll,ll>> v(n+2, {1e16,1e16});
priority_queue<pair<ll,pair<ll,ll>>>q;
q.push({0,{ini,-1}});
while(!q.empty())
{
pair<ll,pair<ll,ll>> a=q.top();q.pop();
if(v[a.y.x].x==1e16)
{
v[a.y.x]={-a.x,a.y.y};
for(auto i:cad[a.y.x])
if(v[i.x].x==1e16)
q.push({a.x-i.y,{i.x,a.y.x}});
}
}
return v;
};
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
ll s,t,l,k;
cin>>s>>t>>l>>k;
cad.resize(n+1);
for(int i=0; i<m; i++)
{
ll a,b,c;
cin>>a>>b>>c;
cad[a].push_back({b,c});
cad[b].push_back({a,c});
}
vector<pair<ll,ll>> vs=Dijkstra(s);
vector<pair<ll,ll>> vt=Dijkstra(t);
if(vs[t].x<=k)
{
cout<<n*(n-1)/2;
return 0;
}
ll p=0;ll cont=0;
sort(vs.begin(),vs.end());
sort(vt.begin(),vt.end());
ll j=n;
for(int i=0; i<=n; i++)
{
while(j>=0&&vs[i].x+vt[j].x+l>k)
j--;
cont+=(j+1);
}
cout<<cont;
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
Main.cpp: In function 'int main()':
Main.cpp:48:8: warning: unused variable 'p' [-Wunused-variable]
48 | ll p=0;ll cont=0;
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |