import java.io.*; import java.util.*;
public class Graph {
public static class Pair{
int vtx; int val;
public Pair(int a, int b){
this.vtx=a; this.val=b;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine());
int N=Integer.parseInt(st.nextToken());
int M=Integer.parseInt(st.nextToken());
ArrayList<Pair> arl[]=new ArrayList[N];
for (int i = 0; i < N; i++) {
arl[i]=new ArrayList<>();
}
int a,b,vv;
for (int i = 0; i < M; i++) {
st=new StringTokenizer(br.readLine());
a=Integer.parseInt(st.nextToken())-1;
b=Integer.parseInt(st.nextToken())-1;
vv=Integer.parseInt(st.nextToken());
arl[a].add(new Pair(b,2*vv)); arl[b].add(new Pair(a,2*vv));
}
boolean[] vis=new boolean[N];
int[] m=new int[N];
int[] c=new int[N];
int done=0; int pt=0;
while(done<N){
while(pt<N && vis[pt]){
pt++;
}
//Start DFS at pt, finish the component
m[pt]=1; //b[pt]=0
Queue<Integer> qu=new LinkedList<>();
qu.add(pt); vis[pt]=true; done++;
Queue<Integer> qu2=new LinkedList<>();//Tracks all vertices in the queue
qu2.add(pt); boolean fix=false;
while(!qu.isEmpty()){
int v=qu.poll();
for (Pair p : arl[v]) {
if(!vis[p.vtx]){
vis[p.vtx]=true; qu.add(p.vtx);
if(!fix){
qu2.add(p.vtx);
}
m[p.vtx]=-m[v]; c[p.vtx]=p.val-c[v]; done++;
}else{
if(m[p.vtx]==m[v] && m[v]!=0){
//m[p.vtx]x+c[p.vtx]+m[v]x+c[v] is known
int x=(p.val-c[p.vtx]-c[v])/(2*m[p.vtx]); fix=true;
for(int vtx: qu2){
c[vtx]+=m[vtx]*x; m[vtx]=0;
}
}else if(m[p.vtx]+m[v]==0){//m[v]=0
if(c[p.vtx]+c[v]!=p.val){
System.out.println("NO"); return;
}
}
}
}
//System.out.println(Arrays.toString(m));
//System.out.println(Arrays.toString(c));
}
if(m[pt]!=0){//This component is not fixed
ArrayList<Integer> arl2=new ArrayList<>();
for (int i : qu2) {
if(m[i]<0){
m[i]=-m[i]; c[i]=-c[i]; qu.add(i);
}
arl2.add(c[i]);
}
Collections.sort(arl2);
int med=arl2.get(arl2.size()/2);
for (int i : qu2) {
c[i]-=med;
}
while(!qu.isEmpty()){
int i=qu.poll();
c[i]=-c[i];
}
}
}
System.out.println("YES");
StringBuilder sb=new StringBuilder();
for (int i = 0; i < N; i++) {
sb.append((double)c[i]/2).append(" ");
}
System.out.println(sb.toString());
}
}
Compilation message
Note: Graph.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
81 ms |
10344 KB |
answer = YES |
2 |
Correct |
84 ms |
10288 KB |
answer = YES |
3 |
Correct |
85 ms |
10468 KB |
answer = YES |
4 |
Correct |
80 ms |
10360 KB |
answer = NO |
5 |
Correct |
86 ms |
10236 KB |
answer = YES |
6 |
Correct |
89 ms |
10616 KB |
answer = YES |
7 |
Correct |
85 ms |
10472 KB |
answer = YES |
8 |
Correct |
81 ms |
10356 KB |
answer = YES |
9 |
Correct |
78 ms |
10468 KB |
answer = NO |
10 |
Correct |
80 ms |
10492 KB |
answer = YES |
11 |
Correct |
81 ms |
10600 KB |
answer = YES |
12 |
Correct |
80 ms |
10492 KB |
answer = NO |
13 |
Correct |
81 ms |
10484 KB |
answer = YES |
14 |
Correct |
84 ms |
10508 KB |
answer = YES |
15 |
Correct |
86 ms |
10488 KB |
answer = YES |
16 |
Correct |
82 ms |
10356 KB |
answer = YES |
17 |
Correct |
82 ms |
10104 KB |
answer = YES |
18 |
Correct |
84 ms |
10432 KB |
answer = YES |
19 |
Correct |
90 ms |
10472 KB |
answer = YES |
20 |
Correct |
86 ms |
10252 KB |
answer = YES |
21 |
Correct |
93 ms |
10456 KB |
answer = YES |
22 |
Correct |
82 ms |
10232 KB |
answer = NO |
23 |
Correct |
80 ms |
10360 KB |
answer = NO |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
81 ms |
10344 KB |
answer = YES |
2 |
Correct |
84 ms |
10288 KB |
answer = YES |
3 |
Correct |
85 ms |
10468 KB |
answer = YES |
4 |
Correct |
80 ms |
10360 KB |
answer = NO |
5 |
Correct |
86 ms |
10236 KB |
answer = YES |
6 |
Correct |
89 ms |
10616 KB |
answer = YES |
7 |
Correct |
85 ms |
10472 KB |
answer = YES |
8 |
Correct |
81 ms |
10356 KB |
answer = YES |
9 |
Correct |
78 ms |
10468 KB |
answer = NO |
10 |
Correct |
80 ms |
10492 KB |
answer = YES |
11 |
Correct |
81 ms |
10600 KB |
answer = YES |
12 |
Correct |
80 ms |
10492 KB |
answer = NO |
13 |
Correct |
81 ms |
10484 KB |
answer = YES |
14 |
Correct |
84 ms |
10508 KB |
answer = YES |
15 |
Correct |
86 ms |
10488 KB |
answer = YES |
16 |
Correct |
82 ms |
10356 KB |
answer = YES |
17 |
Correct |
82 ms |
10104 KB |
answer = YES |
18 |
Correct |
84 ms |
10432 KB |
answer = YES |
19 |
Correct |
90 ms |
10472 KB |
answer = YES |
20 |
Correct |
86 ms |
10252 KB |
answer = YES |
21 |
Correct |
93 ms |
10456 KB |
answer = YES |
22 |
Correct |
82 ms |
10232 KB |
answer = NO |
23 |
Correct |
80 ms |
10360 KB |
answer = NO |
24 |
Correct |
94 ms |
10480 KB |
answer = YES |
25 |
Correct |
95 ms |
10696 KB |
answer = YES |
26 |
Correct |
93 ms |
10596 KB |
answer = YES |
27 |
Correct |
92 ms |
10616 KB |
answer = YES |
28 |
Correct |
93 ms |
10356 KB |
answer = YES |
29 |
Correct |
92 ms |
10612 KB |
answer = YES |
30 |
Correct |
84 ms |
10472 KB |
answer = NO |
31 |
Correct |
87 ms |
10616 KB |
answer = YES |
32 |
Correct |
87 ms |
10492 KB |
answer = YES |
33 |
Correct |
104 ms |
10616 KB |
answer = YES |
34 |
Correct |
95 ms |
10548 KB |
answer = YES |
35 |
Correct |
89 ms |
10500 KB |
answer = YES |
36 |
Correct |
86 ms |
10472 KB |
answer = YES |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
81 ms |
10344 KB |
answer = YES |
2 |
Correct |
84 ms |
10288 KB |
answer = YES |
3 |
Correct |
85 ms |
10468 KB |
answer = YES |
4 |
Correct |
80 ms |
10360 KB |
answer = NO |
5 |
Correct |
86 ms |
10236 KB |
answer = YES |
6 |
Correct |
89 ms |
10616 KB |
answer = YES |
7 |
Correct |
85 ms |
10472 KB |
answer = YES |
8 |
Correct |
81 ms |
10356 KB |
answer = YES |
9 |
Correct |
78 ms |
10468 KB |
answer = NO |
10 |
Correct |
80 ms |
10492 KB |
answer = YES |
11 |
Correct |
81 ms |
10600 KB |
answer = YES |
12 |
Correct |
80 ms |
10492 KB |
answer = NO |
13 |
Correct |
81 ms |
10484 KB |
answer = YES |
14 |
Correct |
84 ms |
10508 KB |
answer = YES |
15 |
Correct |
86 ms |
10488 KB |
answer = YES |
16 |
Correct |
82 ms |
10356 KB |
answer = YES |
17 |
Correct |
82 ms |
10104 KB |
answer = YES |
18 |
Correct |
84 ms |
10432 KB |
answer = YES |
19 |
Correct |
90 ms |
10472 KB |
answer = YES |
20 |
Correct |
86 ms |
10252 KB |
answer = YES |
21 |
Correct |
93 ms |
10456 KB |
answer = YES |
22 |
Correct |
82 ms |
10232 KB |
answer = NO |
23 |
Correct |
80 ms |
10360 KB |
answer = NO |
24 |
Correct |
94 ms |
10480 KB |
answer = YES |
25 |
Correct |
95 ms |
10696 KB |
answer = YES |
26 |
Correct |
93 ms |
10596 KB |
answer = YES |
27 |
Correct |
92 ms |
10616 KB |
answer = YES |
28 |
Correct |
93 ms |
10356 KB |
answer = YES |
29 |
Correct |
92 ms |
10612 KB |
answer = YES |
30 |
Correct |
84 ms |
10472 KB |
answer = NO |
31 |
Correct |
87 ms |
10616 KB |
answer = YES |
32 |
Correct |
87 ms |
10492 KB |
answer = YES |
33 |
Correct |
104 ms |
10616 KB |
answer = YES |
34 |
Correct |
95 ms |
10548 KB |
answer = YES |
35 |
Correct |
89 ms |
10500 KB |
answer = YES |
36 |
Correct |
86 ms |
10472 KB |
answer = YES |
37 |
Correct |
117 ms |
10856 KB |
answer = YES |
38 |
Correct |
104 ms |
10980 KB |
answer = YES |
39 |
Correct |
122 ms |
11256 KB |
answer = YES |
40 |
Correct |
132 ms |
11380 KB |
answer = YES |
41 |
Correct |
109 ms |
11016 KB |
answer = NO |
42 |
Correct |
144 ms |
11380 KB |
answer = YES |
43 |
Correct |
134 ms |
11640 KB |
answer = YES |
44 |
Correct |
127 ms |
11640 KB |
answer = YES |
45 |
Correct |
136 ms |
11988 KB |
answer = YES |
46 |
Correct |
114 ms |
11068 KB |
answer = YES |
47 |
Correct |
134 ms |
12432 KB |
answer = YES |
48 |
Correct |
143 ms |
12304 KB |
answer = YES |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
81 ms |
10344 KB |
answer = YES |
2 |
Correct |
84 ms |
10288 KB |
answer = YES |
3 |
Correct |
85 ms |
10468 KB |
answer = YES |
4 |
Correct |
80 ms |
10360 KB |
answer = NO |
5 |
Correct |
86 ms |
10236 KB |
answer = YES |
6 |
Correct |
89 ms |
10616 KB |
answer = YES |
7 |
Correct |
85 ms |
10472 KB |
answer = YES |
8 |
Correct |
81 ms |
10356 KB |
answer = YES |
9 |
Correct |
78 ms |
10468 KB |
answer = NO |
10 |
Correct |
80 ms |
10492 KB |
answer = YES |
11 |
Correct |
81 ms |
10600 KB |
answer = YES |
12 |
Correct |
80 ms |
10492 KB |
answer = NO |
13 |
Correct |
81 ms |
10484 KB |
answer = YES |
14 |
Correct |
84 ms |
10508 KB |
answer = YES |
15 |
Correct |
86 ms |
10488 KB |
answer = YES |
16 |
Correct |
82 ms |
10356 KB |
answer = YES |
17 |
Correct |
82 ms |
10104 KB |
answer = YES |
18 |
Correct |
84 ms |
10432 KB |
answer = YES |
19 |
Correct |
90 ms |
10472 KB |
answer = YES |
20 |
Correct |
86 ms |
10252 KB |
answer = YES |
21 |
Correct |
93 ms |
10456 KB |
answer = YES |
22 |
Correct |
82 ms |
10232 KB |
answer = NO |
23 |
Correct |
80 ms |
10360 KB |
answer = NO |
24 |
Correct |
94 ms |
10480 KB |
answer = YES |
25 |
Correct |
95 ms |
10696 KB |
answer = YES |
26 |
Correct |
93 ms |
10596 KB |
answer = YES |
27 |
Correct |
92 ms |
10616 KB |
answer = YES |
28 |
Correct |
93 ms |
10356 KB |
answer = YES |
29 |
Correct |
92 ms |
10612 KB |
answer = YES |
30 |
Correct |
84 ms |
10472 KB |
answer = NO |
31 |
Correct |
87 ms |
10616 KB |
answer = YES |
32 |
Correct |
87 ms |
10492 KB |
answer = YES |
33 |
Correct |
104 ms |
10616 KB |
answer = YES |
34 |
Correct |
95 ms |
10548 KB |
answer = YES |
35 |
Correct |
89 ms |
10500 KB |
answer = YES |
36 |
Correct |
86 ms |
10472 KB |
answer = YES |
37 |
Correct |
117 ms |
10856 KB |
answer = YES |
38 |
Correct |
104 ms |
10980 KB |
answer = YES |
39 |
Correct |
122 ms |
11256 KB |
answer = YES |
40 |
Correct |
132 ms |
11380 KB |
answer = YES |
41 |
Correct |
109 ms |
11016 KB |
answer = NO |
42 |
Correct |
144 ms |
11380 KB |
answer = YES |
43 |
Correct |
134 ms |
11640 KB |
answer = YES |
44 |
Correct |
127 ms |
11640 KB |
answer = YES |
45 |
Correct |
136 ms |
11988 KB |
answer = YES |
46 |
Correct |
114 ms |
11068 KB |
answer = YES |
47 |
Correct |
134 ms |
12432 KB |
answer = YES |
48 |
Correct |
143 ms |
12304 KB |
answer = YES |
49 |
Correct |
402 ms |
21968 KB |
answer = YES |
50 |
Correct |
333 ms |
21096 KB |
answer = YES |
51 |
Correct |
369 ms |
21628 KB |
answer = YES |
52 |
Correct |
221 ms |
18888 KB |
answer = NO |
53 |
Correct |
146 ms |
11492 KB |
answer = YES |
54 |
Correct |
199 ms |
14184 KB |
answer = YES |
55 |
Correct |
242 ms |
16832 KB |
answer = YES |
56 |
Correct |
358 ms |
21288 KB |
answer = YES |
57 |
Correct |
417 ms |
21236 KB |
answer = YES |
58 |
Correct |
357 ms |
21440 KB |
answer = YES |
59 |
Correct |
347 ms |
20404 KB |
answer = YES |
60 |
Correct |
375 ms |
21744 KB |
answer = YES |
61 |
Correct |
249 ms |
16312 KB |
answer = YES |
62 |
Execution timed out |
730 ms |
68048 KB |
Time limit exceeded |
63 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
81 ms |
10344 KB |
answer = YES |
2 |
Correct |
84 ms |
10288 KB |
answer = YES |
3 |
Correct |
85 ms |
10468 KB |
answer = YES |
4 |
Correct |
80 ms |
10360 KB |
answer = NO |
5 |
Correct |
86 ms |
10236 KB |
answer = YES |
6 |
Correct |
89 ms |
10616 KB |
answer = YES |
7 |
Correct |
85 ms |
10472 KB |
answer = YES |
8 |
Correct |
81 ms |
10356 KB |
answer = YES |
9 |
Correct |
78 ms |
10468 KB |
answer = NO |
10 |
Correct |
80 ms |
10492 KB |
answer = YES |
11 |
Correct |
81 ms |
10600 KB |
answer = YES |
12 |
Correct |
80 ms |
10492 KB |
answer = NO |
13 |
Correct |
81 ms |
10484 KB |
answer = YES |
14 |
Correct |
84 ms |
10508 KB |
answer = YES |
15 |
Correct |
86 ms |
10488 KB |
answer = YES |
16 |
Correct |
82 ms |
10356 KB |
answer = YES |
17 |
Correct |
82 ms |
10104 KB |
answer = YES |
18 |
Correct |
84 ms |
10432 KB |
answer = YES |
19 |
Correct |
90 ms |
10472 KB |
answer = YES |
20 |
Correct |
86 ms |
10252 KB |
answer = YES |
21 |
Correct |
93 ms |
10456 KB |
answer = YES |
22 |
Correct |
82 ms |
10232 KB |
answer = NO |
23 |
Correct |
80 ms |
10360 KB |
answer = NO |
24 |
Correct |
94 ms |
10480 KB |
answer = YES |
25 |
Correct |
95 ms |
10696 KB |
answer = YES |
26 |
Correct |
93 ms |
10596 KB |
answer = YES |
27 |
Correct |
92 ms |
10616 KB |
answer = YES |
28 |
Correct |
93 ms |
10356 KB |
answer = YES |
29 |
Correct |
92 ms |
10612 KB |
answer = YES |
30 |
Correct |
84 ms |
10472 KB |
answer = NO |
31 |
Correct |
87 ms |
10616 KB |
answer = YES |
32 |
Correct |
87 ms |
10492 KB |
answer = YES |
33 |
Correct |
104 ms |
10616 KB |
answer = YES |
34 |
Correct |
95 ms |
10548 KB |
answer = YES |
35 |
Correct |
89 ms |
10500 KB |
answer = YES |
36 |
Correct |
86 ms |
10472 KB |
answer = YES |
37 |
Correct |
117 ms |
10856 KB |
answer = YES |
38 |
Correct |
104 ms |
10980 KB |
answer = YES |
39 |
Correct |
122 ms |
11256 KB |
answer = YES |
40 |
Correct |
132 ms |
11380 KB |
answer = YES |
41 |
Correct |
109 ms |
11016 KB |
answer = NO |
42 |
Correct |
144 ms |
11380 KB |
answer = YES |
43 |
Correct |
134 ms |
11640 KB |
answer = YES |
44 |
Correct |
127 ms |
11640 KB |
answer = YES |
45 |
Correct |
136 ms |
11988 KB |
answer = YES |
46 |
Correct |
114 ms |
11068 KB |
answer = YES |
47 |
Correct |
134 ms |
12432 KB |
answer = YES |
48 |
Correct |
143 ms |
12304 KB |
answer = YES |
49 |
Correct |
402 ms |
21968 KB |
answer = YES |
50 |
Correct |
333 ms |
21096 KB |
answer = YES |
51 |
Correct |
369 ms |
21628 KB |
answer = YES |
52 |
Correct |
221 ms |
18888 KB |
answer = NO |
53 |
Correct |
146 ms |
11492 KB |
answer = YES |
54 |
Correct |
199 ms |
14184 KB |
answer = YES |
55 |
Correct |
242 ms |
16832 KB |
answer = YES |
56 |
Correct |
358 ms |
21288 KB |
answer = YES |
57 |
Correct |
417 ms |
21236 KB |
answer = YES |
58 |
Correct |
357 ms |
21440 KB |
answer = YES |
59 |
Correct |
347 ms |
20404 KB |
answer = YES |
60 |
Correct |
375 ms |
21744 KB |
answer = YES |
61 |
Correct |
249 ms |
16312 KB |
answer = YES |
62 |
Execution timed out |
730 ms |
68048 KB |
Time limit exceeded |
63 |
Halted |
0 ms |
0 KB |
- |