Submission details
Task:Ping
Sender: >--) ) ) )*>
Submission time:2015-09-09 19:11:13 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#30.14 sdetails
#40.14 sdetails
#50.14 sdetails
#60.13 sdetails
#70.14 sdetails
#80.14 sdetails
#90.14 sdetails
#100.25 sdetails
#11ACCEPTED0.09 sdetails
#120.17 sdetails
#130.08 sdetails
#140.14 sdetails
#150.14 sdetails
#160.13 sdetails
#170.07 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:56:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int i = 0; i < v[s].size(); i++) {
                      ^

Code

#include <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
#include <sstream>
#include <fstream>
#include <cassert>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <bitset>
#include <cmath>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>

using namespace std;

#define ll long long

ll n,q;
ll p;
vector<pair<ll,ll>> v[10101];
priority_queue<pair<ll,ll>> qq;
ll t[10101], e[10101];

#define INF 999999999

int main()
{
	cin.sync_with_stdio(false);
	cin >> n >> q >> p;
	for (int i = 1; i <= n; i++) e[i] = INF;
	e[1] = 0;
	int found = 0;
	for (int j = 0; j < q; j++) {
		ll x1,x2;
		ll d;
		cin >> x1 >> x2 >> d;
		if (d > p || found) continue;
		v[x1].push_back(make_pair(x2,d));
		v[x2].push_back(make_pair(x1,d));
		qq.push(make_pair(0,1));
		while (!qq.empty()) {
			int x = -qq.top().first;
			int s = qq.top().second;
			qq.pop();
			if (t[s]) continue;
			t[s] = 1;
			for (int i = 0; i < v[s].size(); i++) {
				int u = v[s][i].first;
				if (x+v[s][i].second < e[u]) {
					e[u] = x+v[s][i].second;
					qq.push(make_pair(-e[u],u));
				}
			}
		}
		for (int i = 1; i <= n; i++) {
			t[i] = 0;
		}
		if (e[n] <= p) {
			found = j+1;
		}
	}
	if (!found) cout << "QAQ\n";
	else cout << found << "\n";
	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
4 5 4
1 4 5
2 1 1
4 3 2
1 3 2
...

correct output
4

user output
4

Test 2

Verdict: ACCEPTED

input
4 3 4
1 3 2
3 4 3
2 4 1

correct output
QAQ

user output
QAQ

Test 3

Verdict:

input
79228 100000 609719088
71059 11143 686695
68230 2527 877907
53438 29888 202308
3549 78720 356072
...

correct output
95914

user output
(empty)

Test 4

Verdict:

input
54105 100000 146069808
21034 33530 208067
31369 39373 438341
53601 30432 458004
44664 29661 964679
...

correct output
47249

user output
(empty)

Test 5

Verdict:

input
27534 100000 630452185
4554 20869 156656
18125 16857 129766
7327 23355 162783
12208 19586 330973
...

correct output
37629

user output
(empty)

Test 6

Verdict:

input
100000 100000 1896201
37633 24342 686408
21326 35599 18816
68870 92002 748527
87772 68354 816268
...

correct output
QAQ

user output
(empty)

Test 7

Verdict:

input
100000 100000 2753856
28301 86840 226813
23531 88963 140812
81527 28867 31169
81346 50536 187421
...

correct output
QAQ

user output
(empty)

Test 8

Verdict:

input
100000 100000 8894369
96437 89061 279201
93127 41538 16340
5646 70264 970395
96240 15676 526054
...

correct output
89568

user output
(empty)

Test 9

Verdict:

input
100000 100000 8920310
51576 49748 441411
75379 58501 720057
77269 34775 380776
45446 74022 804975
...

correct output
94792

user output
(empty)

Test 10

Verdict:

input
5000 100000 699655
4460 4283 850197
3421 2128 903580
3335 401 848289
4975 4482 241023
...

correct output
58358

user output
74680

Test 11

Verdict: ACCEPTED

input
5000 100000 2906768
4100 2619 553305
4947 1462 263251
1703 4236 286383
4228 4797 635722
...

correct output
12392

user output
12392

Test 12

Verdict:

input
5000 100000 8525016
4452 4625 772169
4941 929 373626
2610 379 935441
3007 4 402654
...

correct output
16113

user output
22833

Test 13

Verdict:

input
5000 100000 6672172
2548 393 274388
1269 4076 230068
24 3024 596999
4658 2589 401693
...

correct output
3674

user output
8042

Test 14

Verdict:

input
100000 100000 1000000000
61435 73156 809653003
31805 69457 997174565
46138 4746 664487503
77749 57316 726729812
...

correct output
QAQ

user output
(empty)

Test 15

Verdict:

input
70000 100000 389981
69496 42899 329
42449 25317 445
2446 37175 175
4791 27488 51
...

correct output
71694

user output
(empty)

Test 16

Verdict:

input
70000 100000 7413515
66481 13331 14
34935 8021 953
66946 55602 904
49080 1580 157
...

correct output
82046

user output
(empty)

Test 17

Verdict:

input
20000 100000 100000000
1 2 10000
2 3 10000
3 4 10000
4 5 10000
...

correct output
50001

user output
1