Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
using namespace std; const int maxn = 1e5 + 10; const int INF = (1 << 30); typedef long long ll; const ll inf = (1LL << 59LL); struct node{ int till, euro, time; node (){} node(int _t, int _timee, int _e){ till = _t; time = _timee; euro = _e; } }; vector
graph[5005]; int n, m, S; bool visited[3005][6005]; int idx[3005]; int main() { ios_base::sync_with_stdio(false); cin >> S >> n >> m; for(int i = 0; i < m; i++){ int a, b, c, d; cin >> a >> b >> c >> d; a--; b--; graph[a].push_back(node(b, c, d)); graph[b].push_back(node(a, c, d)); } memset(visited, false, sizeof visited); int min_vreme = INF; queue
q; q.push(0); q.push(0); q.push(0); int sosed; int weight, money; int eee; while(!q.empty()){ int teme = q.front(); q.pop(); int pari = q.front(); q.pop(); int pat = q.front(); q.pop(); if(teme == n - 1){ if(pat <= S){ min_vreme = min(min_vreme, pari); } continue; } for(int i = 0; i < (int)graph[teme].size(); i++){ sosed = graph[teme][i].till; money = graph[teme][i].time; weight = graph[teme][i].euro; if(weight + pat <= S){ eee = money + pari; if(eee >= 6000) eee -= 6000; if(!visited[sosed][eee]){ visited[sosed][eee] = true; q.push(sosed); q.push(pari + money); q.push(pat + weight); } } } } q.push(0); q.push(0); q.push(0); memset(visited, false, sizeof visited); while(!q.empty()){ int teme = q.front(); q.pop(); int pari = q.front(); q.pop(); int pat = q.front(); q.pop(); if(teme == n - 1){ if(pat <= S){ min_vreme = min(min_vreme, pari); } continue; } for(int i = 0; i < (int)graph[teme].size(); i++){ sosed = graph[teme][i].till; money = graph[teme][i].time; weight = graph[teme][i].euro; if(weight + pat <= S){ eee = pat + weight; if(eee >= 6000){ eee -= 6000; } if(!visited[sosed][pat + weight]){ visited[sosed][pat + weight] = true; q.push(sosed); q.push(pari + money); q.push(pat + weight); } } } } q.push(0); q.push(0); q.push(0); memset(idx, 0, sizeof idx); memset(visited, false, sizeof visited); while(!q.empty()){ int teme = q.front(); q.pop(); int pari = q.front(); q.pop(); int pat = q.front(); q.pop(); if(teme == n - 1){ if(pat <= S){ min_vreme = min(min_vreme, pari); } continue; } for(int i = 0; i < (int)graph[teme].size(); i++){ sosed = graph[teme][i].till; money = graph[teme][i].time; weight = graph[teme][i].euro; if(weight + pat <= S){ eee = idx[sosed] + 1; if(eee >= 6000){ eee -= 6000; } idx[sosed]++; if(!visited[sosed][pat + weight]){ visited[sosed][pat + weight] = true; q.push(sosed); q.push(pari + money); q.push(pat + weight); } } } } if(min_vreme == INF){ cout << -1 << endl; return 0; } cout << min_vreme << endl; return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)