CSES - KILO 2015 5/5 - Results
Submission details
Task:Flights
Sender:infosec
Submission time:2015-10-07 20:37:42 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.91 sdetails
#2ACCEPTED0.16 sdetails
#3ACCEPTED1.65 sdetails
#4--details
#5ACCEPTED1.38 sdetails
#6ACCEPTED1.35 sdetails
#7ACCEPTED0.90 sdetails
#8ACCEPTED0.30 sdetails
#9ACCEPTED1.10 sdetails
#10ACCEPTED0.32 sdetails
#11ACCEPTED0.95 sdetails
#12ACCEPTED0.31 sdetails
#13ACCEPTED0.74 sdetails
#14ACCEPTED0.78 sdetails
#15ACCEPTED0.66 sdetails
#16ACCEPTED0.19 sdetails
#17ACCEPTED0.94 sdetails
#18ACCEPTED0.40 sdetails
#19ACCEPTED0.71 sdetails
#20ACCEPTED0.85 sdetails
#21ACCEPTED0.93 sdetails
#22ACCEPTED0.29 sdetails
#23ACCEPTED0.84 sdetails
#24ACCEPTED0.32 sdetails
#25ACCEPTED1.93 sdetails
#26ACCEPTED0.34 sdetails
#27ACCEPTED1.44 sdetails
#28ACCEPTED0.64 sdetails
#29ACCEPTED0.76 sdetails
#30ACCEPTED0.73 sdetails

Code

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <queue>
#include <algorithm>
#include <vector>
#include <set>
#include <cstdlib>
#include <stack>
#include <iomanip>
using namespace std;
#define all(x) (x).begin(),x.end()
#define ii pair<int, int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define MAXN 100001
const ll INF = (ll)1e17;
int n, m;
vector<int> eList[MAXN], erList[MAXN];
vector<ll> cList[MAXN], crList[MAXN], dList[MAXN];
void dijkstra(int start, vector<int> *eList, vector<ll> *cList, vector<ll> &d) {
priority_queue<ii, vector<ii>, greater<ii> > q;
d[start] = 0;
q.push(ii(0, start));
while (!q.empty()) {
ii top = q.top();
q.pop();
int i = top.se;
if (top.fi > d[i]) {
continue;
}
for (int k = 0; k < (int)eList[i].size(); k++) {
int j = eList[i][k];
int c = cList[i][k];
if (d[j] > d[i] + c) {
d[j] = d[i] + c;
q.push(ii(d[j], j));
}
}
}
}
int main() {
cin >> n >> m;
int u, v;
ll p, x;
for (int i = 0; i < m; i++) {
cin >> u >> v >> p >> x;
u--; v--;
eList[u].pb(v);
cList[u].pb(p);
dList[u].pb(x);
erList[v].pb(u);
crList[v].pb(p);
}
vector<ll> d(n, INF);
dijkstra(0, eList, cList, d);
vector<ll> dr(n, INF);
dijkstra(n-1, erList, crList, dr);
// for (int i = 0; i < n; i++) {
// cout << d[i] << " ";
// }
// cout << endl;
// for (int i = 0; i < n; i++) {
// cout << dr[i] << " ";
// }
double res = (double) INF;
for (int i = 0; i < n; i++) {
for (int k = 0; k < (int) eList[i].size(); k++) {
int j = eList[i][k];
double cost = d[i] + cList[i][k] + dr[j];
double mul = dList[i][k]*0.01;
res = min(res, cost*mul);
// }
}
}
cout << setprecision(17) << res << endl;
return 0;
}

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:

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
(empty)

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.6700001

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.1500006

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.33000001

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.039999999

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.13999999

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.3700001

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.369999997

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.40000001

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.550000004

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.100000009

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.89000002

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.920000002

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.230000004

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.20000002

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.079999998

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.120000001

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.1900001

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.579999998

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