제출 #1292413

#제출 시각아이디문제언어결과실행 시간메모리
1292413lisothRobot (JOI21_ho_t4)C++20
0 / 100
111 ms19860 KiB
#include<bits/stdc++.h> using ll=long long; const int N=1e6+5; #define pii pair<int,int> #define pll pair<ll,ll> #define fi first #define se second #define F(i,a,b,c) for(int i=a;i<=b;i+=c) #define fo(i,a,b,c) for(int i=a;i>=b;i-=c) #define pb push_back const int MOD=1e9+7; #define el cout<<'\n' #define all(x) x.begin(),x.end() #define name "robot1" using namespace std; ll n,m; struct tri { ll fi,se,th; }; vector<tri> g[N]; void init() { cin>>n>>m; F(i,1,m,1) { ll a,b,c,p;cin>>a>>b>>c>>p; g[a].pb({b,c,p}); g[b].pb({a,c,p}); } } ll dp[N]; ll s[N],mi[N]; const ll INF=1e17; void process() { priority_queue<pll,vector<pll>,greater<pll>> h; F(i,2,n,1) dp[i]=INF; h.push({0,1}); F(i,1,m,1) mi[i]=INF; while(h.size()) { auto [d,u]=h.top();h.pop(); if(d>dp[u]) continue; for(auto [v,c,p]:g[u]) { s[c]+=p; mi[c]=min(mi[c],dp[u]); } for(auto [v,c,p]:g[u]) { ll w=min(p,s[c]-p); if(dp[v]>d+w) h.push({dp[v]=d+w,v}); if(dp[v]>mi[c]+s[c]-w) h.push({dp[v]=mi[c]+s[c]-w,v}); } for(auto [v,c,p]:g[u]) { s[c]=0; mi[c]=INF; } } cout<<(dp[n]==INF?-1:dp[n]); } int main() { ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); if(fopen(name".inp","r")) { freopen(name".inp","r",stdin); freopen(name".out","w",stdout); } //input: init(); clock_t begin = clock(); //code: process(); clock_t end = clock(); cerr<<endl<<"Time run: "<<(float)(end-begin)/CLOCKS_PER_SEC<<" s"<<endl; return 0; }

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

Main.cpp: In function 'int main()':
Main.cpp:72:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |         freopen(name".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Main.cpp:73:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |         freopen(name".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...