Submission #300332

#TimeUsernameProblemLanguageResultExecution timeMemory
300332mythosConnecting Supertrees (IOI20_supertrees)Java
19 / 100
502 ms59284 KiB
import java.util.ArrayList; import java.util.Arrays; class supertrees { int n; int construct(int[][] p) { n = p.length; boolean used[] = new boolean[n]; int[][] b = new int[n][n]; int[] parent = new int[n]; for (int i=0; i<n; i++) { ArrayList<Integer> l = new ArrayList<>(); if(!used[i]) { for(int j=0; j<n; j++) { if(p[i][j]==2) { l.add(j); used[i] = true; used[j] = true; } } if(l.size() == 1) return 0; if(l.size() >= 2) { for(int j=0; j+1<l.size(); j++) { b[l.get(j)][l.get(j+1)] = 1; b[l.get(j+1)][l.get(j)] = 1; } b[l.get(0)][i] = 1; b[i][l.get(0)] = 1; b[l.get(l.size()-1)][i] = 1; b[i][l.get(l.size()-1)] = 1; } } } for(int i=0; i<n; i++) { parent[i] = i; } for(int i=0; i<n; i++) { for(int j=0; j<i; j++) { if(p[i][j]==2) { parent[j] = i; } } } for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { if(p[i][j]==2 && parent[i]!=parent[j]) { return 0; } if(p[i][j]==0 && parent[i]==parent[j]) { return 0; } } } grader.build(b); return 1; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...