Task: | Flights |
Sender: | multiply and surrender |
Submission time: | 2015-10-07 18:46:34 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.42 s | details |
#2 | ACCEPTED | 0.17 s | details |
#3 | ACCEPTED | 0.41 s | details |
#4 | ACCEPTED | 0.37 s | details |
#5 | ACCEPTED | 0.43 s | details |
#6 | ACCEPTED | 0.29 s | details |
#7 | ACCEPTED | 0.41 s | details |
#8 | ACCEPTED | 0.20 s | details |
#9 | ACCEPTED | 0.43 s | details |
#10 | ACCEPTED | 0.30 s | details |
#11 | ACCEPTED | 0.43 s | details |
#12 | ACCEPTED | 0.29 s | details |
#13 | ACCEPTED | 0.43 s | details |
#14 | ACCEPTED | 0.33 s | details |
#15 | ACCEPTED | 0.43 s | details |
#16 | ACCEPTED | 0.13 s | details |
#17 | ACCEPTED | 0.42 s | details |
#18 | ACCEPTED | 0.29 s | details |
#19 | ACCEPTED | 0.43 s | details |
#20 | ACCEPTED | 0.32 s | details |
#21 | ACCEPTED | 0.42 s | details |
#22 | ACCEPTED | 0.18 s | details |
#23 | ACCEPTED | 0.43 s | details |
#24 | ACCEPTED | 0.26 s | details |
#25 | ACCEPTED | 0.42 s | details |
#26 | ACCEPTED | 0.19 s | details |
#27 | ACCEPTED | 0.41 s | details |
#28 | ACCEPTED | 0.31 s | details |
#29 | ACCEPTED | 0.43 s | details |
#30 | ACCEPTED | 0.30 s | details |
Code
#include <iostream> #include <vector> #include <queue> #define ll long long #define mp make_pair #define F first #define S second #define INF 999999999999999 #define ld long double using namespace std; pair<pair<ll,ll>,pair<int,int>> e[201010]; vector<int> v1[101010], v2[101010]; int n,m; priority_queue<pair<ll,int>> pq; int t[101010],t2[101010]; ll dist[101010], dist2[101010]; void dijkstra() { for (int i=1;i<=n;i++) dist[i]=INF; dist[1]=0; pq.push(mp(0,1)); while (!pq.empty()) { ll x = -pq.top().first; int s = pq.top().second; pq.pop(); if (t[s]) continue; t[s] = 1; for (unsigned int i = 0; i < v1[s].size(); i++) { int u = e[v1[s][i]].S.S; if (x+e[v1[s][i]].F.F < dist[u]) { dist[u] = x+e[v1[s][i]].F.F; pq.push(make_pair(-dist[u],u)); } } } } void dijkstra2() { for (int i=1;i<=n;i++) dist2[i]=INF; dist2[n]=0; pq.push(mp(0,n)); while (!pq.empty()) { ll x = -pq.top().first; int s = pq.top().second; pq.pop(); if (t2[s]) continue; t2[s] = 1; for (unsigned int i = 0; i < v2[s].size(); i++) { int u = e[v2[s][i]].S.F; if (x+e[v2[s][i]].F.F < dist2[u]) { dist2[u] = x+e[v2[s][i]].F.F; pq.push(make_pair(-dist2[u],u)); } } } } int main() { cin >> n >> m; for (int i=0;i<m;i++) { int a,b; ll p,x; cin >> a >> b >> p >> x; v1[a].push_back(i); v2[b].push_back(i); e[i]=mp(mp(p,x),mp(a,b)); } dijkstra(); dijkstra2(); // for (int i=1;i<=n;i++) cout << dist[i] << " " << dist2[i] << endl; ll parsa =4*99*INF; for (int i=0;i<m;i++) { ll res = dist[e[i].S.F]; res += dist2[e[i].S.S]; res+=e[i].F.F; res*=e[i].F.S; if (res < parsa) parsa = res; } cout << parsa/100; if (parsa%100) cout << "." << (parsa/10)%10 << parsa%10; cout << "\n"; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100000 200000
83440 84424 708810295 87 28725 29724 552336091 3 76873 79637 768853492 82 73157 75801 208773467 95 ... |
correct output |
---|
176693844.03 |
user output |
---|
176693844.03 |
Test 2
Verdict: ACCEPTED
input |
---|
4158 76239
2106 2107 214369404 9 2615 2616 599912001 65 2736 2737 106730531 5 3122 3123 989740491 72 ... |
correct output |
---|
2980020476.98 |
user output |
---|
2980020476.98 |
Test 3
Verdict: ACCEPTED
input |
---|
100000 200000
61333 61375 934791657 27 57230 57459 363488259 89 94862 95081 574564520 83 29350 29358 205892730 47 ... |
correct output |
---|
2063342137.46 |
user output |
---|
2063342137.46 |
Test 4
Verdict: ACCEPTED
input |
---|
55959 184823
48935 48939 66931740 65 55879 55910 682673953 74 23663 23698 990216382 44 42486 42505 972883623 27 ... |
correct output |
---|
4779099645.25 |
user output |
---|
4779099645.25 |
Test 5
Verdict: ACCEPTED
input |
---|
100000 200000
79146 79332 484554310 35 52757 52824 784839804 4 63169 63197 671959358 77 38542 38830 850962666 26 ... |
correct output |
---|
1273046189.67 |
user output |
---|
1273046189.67 |
Test 6
Verdict: ACCEPTED
input |
---|
15536 166330
14900 14902 921455515 89 9329 9332 365143744 14 13868 13871 328203159 78 7822 7824 990983220 54 ... |
correct output |
---|
6582993331.15 |
user output |
---|
6582993331.15 |
Test 7
Verdict: ACCEPTED
input |
---|
100000 200000
89124 91195 199647214 2 58704 58990 98401141 40 56447 57157 120977342 98 65418 67693 530932650 5 ... |
correct output |
---|
234347497.33 |
user output |
---|
234347497.33 |
Test 8
Verdict: ACCEPTED
input |
---|
36932 93986
13379 23634 481615407 80 11370 22629 626275451 41 6043 11090 696835009 43 24878 31930 227873837 15 ... |
correct output |
---|
41484417.04 |
user output |
---|
41484417.04 |
Test 9
Verdict: ACCEPTED
input |
---|
100000 200000
81515 81926 207016347 20 93172 93603 517064812 89 27081 27270 942564502 93 65710 66430 161755057 23 ... |
correct output |
---|
663852899.14 |
user output |
---|
663852899.14 |
Test 10
Verdict: ACCEPTED
input |
---|
4286 186778
1008 1009 298863636 25 3735 3736 691053215 32 2583 2584 141648549 63 1362 1363 132628814 52 ... |
correct output |
---|
1265736627.37 |
user output |
---|
1265736627.37 |
Test 11
Verdict: ACCEPTED
input |
---|
100000 200000
39274 41223 667509717 39 17668 18392 794560732 87 84624 85119 258645192 82 39687 40083 222180448 9 ... |
correct output |
---|
204801135.31 |
user output |
---|
204801135.31 |
Test 12
Verdict: ACCEPTED
input |
---|
156 196340
115 120 885358263 74 69 70 733840613 66 47 51 194519228 36 143 144 997357319 98 ... |
correct output |
---|
234518.53 |
user output |
---|
234518.53 |
Test 13
Verdict: ACCEPTED
input |
---|
100000 200000
61800 98622 689416865 94 93496 96677 968883683 26 30065 73258 40047565 96 11930 20180 777906649 69 ... |
correct output |
---|
46500624.37 |
user output |
---|
46500624.37 |
Test 14
Verdict: ACCEPTED
input |
---|
58203 168742
20492 20819 512664683 45 35979 36073 406549228 72 22670 22884 958846926 50 3181 3366 812137674 64 ... |
correct output |
---|
192471624.40 |
user output |
---|
192471624.40 |
Test 15
Verdict: ACCEPTED
input |
---|
100000 200000
53792 75073 320931265 77 27716 53886 29596596 82 9946 19018 891154582 91 414 66597 2097895 61 ... |
correct output |
---|
52804878.55 |
user output |
---|
52804878.55 |
Test 16
Verdict: ACCEPTED
input |
---|
29790 51057
6914 7959 559807642 87 4772 6061 707689095 28 12502 14138 473393199 55 16425 16862 224827374 16 ... |
correct output |
---|
96426328.10 |
user output |
---|
96426328.10 |
Test 17
Verdict: ACCEPTED
input |
---|
100000 200000
49413 51160 127588771 32 34728 34779 643912757 70 14609 15317 638237969 84 72278 72351 726808755 98 ... |
correct output |
---|
231729444.89 |
user output |
---|
231729444.89 |
Test 18
Verdict: ACCEPTED
input |
---|
16757 154256
1874 1903 580982686 96 14236 14609 288982257 24 11085 11417 670713941 5 15130 15467 715203324 50 ... |
correct output |
---|
47919755.92 |
user output |
---|
47919755.92 |
Test 19
Verdict: ACCEPTED
input |
---|
100000 200000
81960 97123 353071177 60 77895 83362 530318855 51 88788 96462 763556172 10 71069 89886 859574737 51 ... |
correct output |
---|
46970338.23 |
user output |
---|
46970338.23 |
Test 20
Verdict: ACCEPTED
input |
---|
36582 167647
16230 16359 131627754 74 29007 29070 968621666 86 29854 30031 159358481 31 12010 12340 159218511 83 ... |
correct output |
---|
245097346.41 |
user output |
---|
245097346.41 |
Test 21
Verdict: ACCEPTED
input |
---|
100000 200000
24087 24412 947358065 23 43122 45521 695825811 46 41701 43009 282526216 22 54644 55241 663868618 22 ... |
correct output |
---|
182454553.20 |
user output |
---|
182454553.20 |
Test 22
Verdict: ACCEPTED
input |
---|
19505 82130
10844 11159 72114176 12 2598 2890 247996564 65 16334 16419 152514701 1 6449 6630 826660090 3 ... |
correct output |
---|
90750315.08 |
user output |
---|
90750315.08 |
Test 23
Verdict: ACCEPTED
input |
---|
100000 200000
18237 23377 495435695 99 64625 68562 165710300 17 92456 92551 809687286 63 69882 70839 463068629 94 ... |
correct output |
---|
107349070.08 |
user output |
---|
107349070.08 |
Test 24
Verdict: ACCEPTED
input |
---|
24334 122357
20514 20821 536592664 40 3254 4063 271689487 32 16094 17795 378738726 16 19192 21939 488115831 75 ... |
correct output |
---|
21531136.12 |
user output |
---|
21531136.12 |
Test 25
Verdict: ACCEPTED
input |
---|
100000 200000
52201 52304 516199490 3 44594 44790 845780568 84 99131 99307 50245171 79 32481 32509 152614952 8 ... |
correct output |
---|
2641004228.19 |
user output |
---|
2641004228.19 |
Test 26
Verdict: ACCEPTED
input |
---|
26099 89426
8222 8817 421562264 91 21504 21939 928132818 10 13949 14159 774448630 76 19315 19751 984491893 32 ... |
correct output |
---|
133812727.09 |
user output |
---|
133812727.09 |
Test 27
Verdict: ACCEPTED
input |
---|
100000 200000
58145 58370 637242643 19 24491 24661 262541209 9 62570 62672 413680288 49 71890 72126 53363827 82 ... |
correct output |
---|
1253750128.48 |
user output |
---|
1253750128.48 |
Test 28
Verdict: ACCEPTED
input |
---|
35877 163659
5428 5668 961665808 94 11515 11541 884764784 34 7511 7652 62813799 11 10211 10835 442538859 55 ... |
correct output |
---|
114218011.47 |
user output |
---|
114218011.47 |
Test 29
Verdict: ACCEPTED
input |
---|
100000 200000
32689 38720 604086442 75 17653 27003 200982141 20 5642 19524 176519335 85 44331 52918 623420216 30 ... |
correct output |
---|
42422753.58 |
user output |
---|
42422753.58 |
Test 30
Verdict: ACCEPTED
input |
---|
71343 146160
24454 24767 601993050 84 22024 22056 179622315 81 51552 52291 321098922 17 50645 50972 583641105 77 ... |
correct output |
---|
407548924.88 |
user output |
---|
407548924.88 |