QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#296516#7871. 命运oscaryang10 8ms4620kbC++202.0kb2024-01-03 08:57:002024-01-03 08:57:01

Judging History

This is the latest submission verdict.

  • [2024-01-03 08:57:01]
  • Judged
  • Verdict: 10
  • Time: 8ms
  • Memory: 4620kb
  • [2024-01-03 08:57:00]
  • Submitted

answer

#include<bits/stdc++.h>

#define vc vector
#define pb emplace_back
#define pii pair<int, int>
#define mkp make_pair
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define lep(i, a, b) for(int i = (a); i >= (b); --i)

using namespace std;

inline int read() {
	int x = 0, w = 0; char ch = getchar(); while(!isdigit(ch)) w |= (ch == '-'), ch = getchar();
	while(isdigit(ch)) x = x * 10 + (ch ^ 48), ch = getchar(); return w ? -x : x; 
}

const int N = 1e6 + 5, P = 1e9 + 7, inf = 0x3f3f3f3f;

inline void chkmin(int &x, int y) { x = x > y ? y : x; }
inline void inc(int &x, int y) { x += y - P; x += (x >> 31) & P; }
inline int power(int a, int b) { int res = 1; for(; b; b >>= 1, a = 1ll * a * a % P) if(b & 1) res = 1ll * res * a % P; return res; }
inline int inv(int x) { return power(x, P - 2); }

int n, m, k, s, ans, anc[N], val[N], key[N];
struct edge { int u, v, w; bool friend operator<(edge A, edge B) { return A.w < B.w; } };
vc<edge> e;
vc<int> all;

inline int get(int x) { return anc[x] == x ? x : anc[x] = get(anc[x]); }
inline void merge(int x, int y, int z) {
	x = get(x); y = get(y);
	if(x == y) return ;
	if(val[x] > val[y]) swap(x, y);
	anc[y] = x; key[y] = z; ans += z;
}

signed main() {
	n = read(); m = read(); k = read(); s = read();
	rep(i, 1, n) anc[i] = i, val[i] = inf, key[i] = -1;
	for(int i = 1, u, v, w; i <= m; i++) {
		u = read(); v = read(); w = read();
		if(u == s) chkmin(val[v], w);
		else if(v == s) chkmin(val[u], w);
		else e.pb(edge{u, v, w});
	}
	
	sort(e.begin(), e.end());
	for(int i = 0; i < e.size(); i++) 
		merge(e[i].u, e[i].v, e[i].w);
	
	rep(i, 1, n) if(i != s && get(i) == i) {
		if(val[i] == inf) return puts("nonnondayo"), 0;
		--k; ans += val[i]; val[i] = inf;
	}
	if(k < 0) return puts("nonnondayo"), 0;
	
	vc<int> ex;
	rep(i, 1, n) if(i != s && val[i] != inf) 
		ex.pb(val[i] - key[i]);
	if(ex.size() < k) return puts("nonnondayo"), 0;
	sort(ex.begin(), ex.end());
	rep(i, 0, k - 1) ans += ex[i];
	
	cout << ans << endl;
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 3ms
memory: 4620kb

input:

49277 49276 1 49277
1 2 2000
2 3 3000
2 4 4000
3 5 5000
3 6 6000
4 7 7000
1 8 8000
7 9 9000
1 10 10000
5 11 11000
4 12 12000
3 13 13000
13 14 14000
1 15 15000
7 16 16000
11 17 17000
2 18 18000
10 19 19000
6 20 20000
4 21 21000
17 22 22000
1 23 23000
14 24 24000
4 25 25000
16 26 26000
15 27 27000
9 2...

output:

-1339742768

result:

wrong answer 1st lines differ - expected: '1214136002000', found: '-1339742768'

Subtask #2:

score: 10
Accepted

Test #5:

score: 10
Accepted
time: 0ms
memory: 3440kb

input:

21 20 2 21
1 2 18581
1 3 9620
2 4 4362
1 5 7702
5 6 17435
4 7 11679
3 8 14832
1 9 15073
2 10 6595
5 11 19676
11 12 16943
12 13 5268
5 14 20262
8 15 8192
7 16 12340
7 17 1437
7 18 3064
2 19 10437
12 20 2882
19 21 13483

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3508kb

input:

10 20 4 3
1 2 18247
2 3 9041
2 4 4031
2 5 7363
3 6 17172
1 7 11014
6 8 14781
8 9 15347
8 10 6598
5 9 19331
3 10 16523
10 6 5732
2 3 20357
6 9 8827
10 3 12864
6 3 1551
5 6 3932
3 1 10223
9 3 2296
8 5 13620

output:

54418

result:

ok single line: '54418'

Test #7:

score: 0
Accepted
time: 0ms
memory: 3432kb

input:

10 20 6 10
1 2 18401
2 3 9843
3 4 4219
4 5 7552
4 6 17751
4 7 11318
5 8 14774
8 9 15541
5 10 6928
6 10 19860
10 5 16699
5 8 5937
5 2 20611
1 8 8077
10 1 12386
9 4 1663
9 10 3910
1 9 10401
7 10 2383
2 9 13681

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Test #8:

score: 0
Accepted
time: 1ms
memory: 3548kb

input:

10 20 1 10
1 2 18853
2 3 9034
3 4 4069
3 5 7743
3 6 17122
6 7 11715
2 8 14814
1 9 15011
7 10 6248
6 8 19400
7 3 16354
6 8 5249
7 8 20701
5 10 8079
10 5 12570
7 10 1006
8 3 3814
5 10 10753
5 9 2310
8 6 13123

output:

59951

result:

ok single line: '59951'

Test #9:

score: 0
Accepted
time: 1ms
memory: 3512kb

input:

10 11 3 1
1 2 9407
1 3 7005
1 4 5453
1 5 4585
1 6 8278
1 7 6332
1 8 1415
1 9 3809
1 10 10519
2 6 2507
10 6 11580

output:

nonnondayo

result:

ok single line: 'nonnondayo'

Subtask #3:

score: 0
Wrong Answer

Dependency #2:

100%
Accepted

Test #10:

score: 0
Wrong Answer
time: 0ms
memory: 3540kb

input:

1000 3000 100 10
1 2 2270918
1 3 871400
2 4 1242131
3 5 2307909
5 6 1391239
3 7 1431327
7 8 2501929
5 9 2377716
8 10 612146
5 11 991199
11 12 1810465
10 13 1094558
10 14 2605381
8 15 872336
10 16 2092297
5 17 619719
14 18 1161002
5 19 1828768
10 20 837691
2 21 1787203
3 22 396276
21 23 1371664
16 24...

output:

642993319

result:

wrong answer 1st lines differ - expected: '645739778', found: '642993319'

Subtask #4:

score: 0
Skipped

Dependency #1:

0%

Subtask #5:

score: 0
Wrong Answer

Test #17:

score: 0
Wrong Answer
time: 8ms
memory: 4604kb

input:

49996 50165 184 1
3 2 123052595
4 3 96661399
5 2 21916499
6 3 110026337
7 6 37432710
8 2 38560107
9 8 83209370
10 8 80352229
11 2 88957425
12 7 65449321
13 5 38238243
14 5 90153912
15 11 30810953
16 3 96492912
17 13 112885611
18 15 87190336
19 9 91182003
20 2 107304872
21 6 101440738
22 13 120601711...

output:

-788172689

result:

wrong answer 1st lines differ - expected: '2902613721568', found: '-788172689'

Subtask #6:

score: 0
Skipped

Dependency #3:

0%

Subtask #7:

score: 0
Skipped

Dependency #1:

0%