QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#274875#4357. School Roadomeganot0 34ms19840kbC++141.8kb2023-12-04 03:43:152023-12-04 03:43:15

Judging History

你现在查看的是最新测评结果

  • [2023-12-04 03:43:15]
  • 评测
  • 测评结果:0
  • 用时:34ms
  • 内存:19840kb
  • [2023-12-04 03:43:15]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
const int MOD = 1E9 + 7;
const int INF = 1E9; const ll INFLL = 1E18;

const int MAX = 1E5;

bool ok = true;
bool span[MAX * 2];
bool seen[MAX];
ll w[MAX];
int depth[MAX];
vector<array<int, 3>> adj[MAX];
vector<array<int, 2>> segm;

struct FenwickTree {
	int n;
	vector<int> fen;
	FenwickTree(int n) {
		this->n = n;
		fen.resize(n);
	}
	int lso(int x) {
		return (x & (-x));
	}
	void update(int i, int x) {
		for(; i < n; i += lso(i)) {
			fen[i] += x;
		}
	}
	int query(int i) {
		int ans = 0;
		for(; i; i -= lso(i)) {
			ans += fen[i];
		}
		return ans;
	}
	int query(int i, int j) {
		return query(j) - query(i);
	}
};

int N; int M; 

void dfs(int x) {
	seen[x] = true;
	for(array<int, 3> i : adj[x]) {
		if(!seen[i[0]]) {
			w[i[0]] = w[x] + i[2];
			depth[i[0]] = depth[x] + 1;
			span[i[1]] = true;
			dfs(i[0]);
		}
	}
}

void dfs2(int x, int p) {
	for(array<int, 3> i : adj[x]) {
		if(i[0] == p) {
			continue;
		}
		if(span[i[1]]) {
			dfs2(i[0], x);
		} else {
			if(min(depth[x], depth[i[0]]) < depth[N - 1] && max(depth[x], depth[i[0]]) > depth[N - 1]) {
				ok = false;
			} else {
				if(w[x] - w[i[0]] != i[2]) {
					ok = false;
				}
				segm.push_back({depth[i[0]], depth[x]});
			}
		}
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin >> N >> M;
	for(int i = 0; i < M; i++) {
		int A; int B; int C;
		cin >> A >> B >> C;
		A--; B--;
		adj[A].push_back({B, i, C});
		adj[B].push_back({A, i, C});
	}
	dfs(0);
	dfs2(0, -1);
	if(ok) {
		stable_sort(segm.begin(), segm.end());
		FenwickTree fen(N + 1);
		for(array<int, 2> i : segm) {
			if(fen.query(i[0] + 1, i[1] + 1)) {
				ok = false;
			}
			fen.update(i[1] + 1, 1);
		}
	}
	cout << ok << "\n";
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 7
Accepted
time: 1ms
memory: 5992kb

input:

14 40
8 12 570429827
6 10 592780730
13 14 299807355
4 10 729771483
4 10 729771483
6 9 746405411
2 3 696576351
12 14 192640790
4 13 284900209
1 2 857968292
12 14 192640790
8 12 570429827
6 10 592780730
6 9 746405411
9 11 329648726
4 13 284900209
2 3 696576351
4 10 729771483
5 11 101819611
3 7 1824073...

output:

0

result:

ok single line: '0'

Test #2:

score: -7
Wrong Answer
time: 1ms
memory: 6864kb

input:

41 40
12 19 102666211
30 32 10931929
8 34 88862177
11 29 37284876
6 35 24117284
6 11 24483138
10 35 11019124
4 22 509961847
20 39 77098829
25 33 563195350
22 24 781289886
2 17 238185039
21 27 288940653
3 31 62767763
18 21 350694322
2 40 228181439
3 33 109276182
31 36 203571934
28 34 64098677
14 24 3...

output:

1

result:

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

Subtask #2:

score: 0
Wrong Answer

Test #11:

score: 15
Accepted
time: 1ms
memory: 6372kb

input:

18 40
3 10 26965732
5 15 67047331
3 17 42474964
13 15 129212204
9 18 142540287
2 14 27157962
5 15 67047331
5 15 67047331
5 15 67047331
4 16 212978971
6 12 51548223
4 18 192438222
13 16 60052417
16 17 162364835
6 17 55527270
9 11 58810843
3 7 95393586
13 15 129212204
2 17 67824762
5 15 67047331
15 16...

output:

0

result:

ok single line: '0'

Test #12:

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

input:

18 51
5 16 489370441
7 8 674383722
8 11 602435525
1 10 856666364
13 18 650829027
11 14 198398173
3 4 613940394
15 17 123758204
8 11 602435525
3 6 567757815
13 18 650829027
14 15 236674174
3 4 613940394
5 18 956980171
6 16 887883755
3 6 567757815
6 16 887883755
5 18 956980171
4 10 339471731
11 14 198...

output:

0

result:

ok single line: '0'

Test #13:

score: 0
Accepted
time: 28ms
memory: 13496kb

input:

18 200000
8 17 279042056
12 13 907447344
2 16 240997679
3 7 820773384
1 5 45712022
2 16 240997679
4 18 239293113
9 14 389857788
4 18 239293113
4 18 239293113
1 11 409366186
3 12 208134361
2 16 240997679
13 17 263089947
1 5 45712022
4 18 239293113
4 7 528521172
2 9 629050323
8 17 279042056
12 13 9074...

output:

0

result:

ok single line: '0'

Test #14:

score: 0
Accepted
time: 31ms
memory: 13452kb

input:

18 200000
12 14 787958557
3 17 309856381
7 16 602540874
6 12 343810291
12 14 561222017
7 16 125534085
9 17 870511470
7 16 118408057
10 15 452922275
6 12 983055551
3 17 599421596
9 17 344601220
10 15 627856971
6 12 821612223
9 13 652746776
2 3 86605360
14 16 845498029
4 5 531236117
6 12 308924509
5 1...

output:

0

result:

ok single line: '0'

Test #15:

score: 0
Accepted
time: 31ms
memory: 13040kb

input:

18 199999
6 16 312811855
5 10 658600889
8 13 23117786
2 11 838354308
2 16 681349134
9 17 650741046
3 12 902316677
8 13 557626383
7 13 747622028
14 15 246861375
5 10 779694159
11 15 507769124
7 13 310445554
7 13 668124445
5 10 558567743
3 17 535103743
5 10 122705300
4 6 559392043
14 15 427912040
8 13...

output:

0

result:

ok single line: '0'

Test #16:

score: -15
Wrong Answer
time: 19ms
memory: 13700kb

input:

18 200000
8 16 273673687
9 11 360275441
4 6 922867054
4 14 84928274
6 13 968233426
2 12 812572590
11 15 71503040
4 6 980374167
9 11 223188493
8 16 115328427
10 13 361608292
6 13 37132062
10 13 545962114
9 11 390680169
3 14 698353284
7 10 584994105
8 16 55684470
8 16 284428277
6 13 124379775
2 5 2317...

output:

0

result:

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

Subtask #3:

score: 0
Wrong Answer

Test #18:

score: 0
Wrong Answer
time: 34ms
memory: 19840kb

input:

100000 99999
42115 93495 19881095
21969 68351 161710
7405 86343 27129
37307 45676 320013
30388 71545 117761
22026 68957 65332
77949 81644 2281387
24865 95079 341488
9849 98496 2548159
53911 79572 4962105
24880 62622 1678564
15943 22168 1524688
67424 78323 2450655
32175 74893 1908332
35640 39305 1043...

output:

1

result:

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

Subtask #4:

score: 0
Wrong Answer

Test #57:

score: 35
Accepted
time: 0ms
memory: 7456kb

input:

18 400
11 18 145314505
1 18 242896789
1 18 242896789
5 13 31030812
13 18 93451080
1 18 242896789
1 7 123378068
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 3 42183985
1 18 242896789
13 18 93451080
1 18 242896789
13 18 93451080
1 18 242896789
1 18 242896...

output:

0

result:

ok single line: '0'

Test #58:

score: 0
Accepted
time: 23ms
memory: 14904kb

input:

18 200000
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 ...

output:

0

result:

ok single line: '0'

Test #59:

score: -35
Wrong Answer
time: 28ms
memory: 17668kb

input:

18 200000
1 16 142470606
1 16 142470606
1 16 142470606
1 16 142470606
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 16 142470606
1 16 142470606
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 16 142470606
1 18 403405575
1 16 142470606
16 18...

output:

0

result:

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

Subtask #5:

score: 0
Skipped

Dependency #1:

0%