Submission #869308
Source Code Expand
import java.io.*; import java.util.*; public class Main { BufferedReader br; PrintWriter out; StringTokenizer st; boolean eof; List<Integer>[] g; int v1 = -1, v2 = -1; int[][] cnt; int[] color; int[] par; void dfs(int v, int p, int col) { cnt[v][col]++; color[v] = col; par[v] = p; for (int u : g[v]) { if (u == p) { continue; } if (color[u] != -1) { v1 = v; v2 = u; } else { dfs(u, v, col ^ 1); cnt[v][0] += cnt[u][0]; cnt[v][1] += cnt[u][1]; } } } void solve() throws IOException { int n = nextInt(); int m = nextInt(); g = new List[n]; for (int i = 0; i < n; i++) { g[i] = new ArrayList<>(); } for (int i = 0; i < m; i++) { int v = nextInt() - 1; int u = nextInt() - 1; g[v].add(u); g[u].add(v); } cnt = new int[n][2]; color = new int[n]; par = new int[n]; Arrays.fill(color, -1); dfs(0, -1, 0); long ans = 0; if (m == n - 1) { if (cnt[0][0] != cnt[0][1]) { ans = -1; } else { for (int i = 1; i < n; i++) { ans += Math.abs(cnt[i][0] - cnt[i][1]); } } } else if (color[v1] == color[v2]) { if (n % 2 == 1) { ans = -1; } else { int cv = color[v1]; int delta = (cnt[0][cv ^ 1] - cnt[0][cv]) / 2; for (int v = v1; v != -1; v = par[v]) { cnt[v][cv] += delta; } for (int v = v2; v != -1; v = par[v]) { cnt[v][cv] += delta; } ans += Math.abs(delta); for (int i = 1; i < n; i++) { ans += Math.abs(cnt[i][0] - cnt[i][1]); } } } else { if (cnt[0][0] != cnt[0][1]) { ans = -1; } else { for (int i = 1; i < n; i++) { ans += Math.abs(cnt[i][0] - cnt[i][1]); } List<Integer> all = new ArrayList<>(); for (int i = v2; i != v1; i = par[i]) { all.add(cnt[i][0] - cnt[i][1]); ans -= Math.abs(cnt[i][0] - cnt[i][1]); } all.add(0); // System.err.println(all); Collections.sort(all); int mid = all.get(all.size() / 2); for (int x : all) { ans += Math.abs(mid - x); } } } out.println(ans); } Main() throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); out = new PrintWriter(System.out); Thread t = new Thread(null, () -> { try { solve(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }, "lul", 1 << 26); t.start(); try { t.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.close(); } public static void main(String[] args) throws IOException { new Main(); } String nextToken() { while (st == null || !st.hasMoreTokens()) { try { st = new StringTokenizer(br.readLine()); } catch (Exception e) { eof = true; return null; } } return st.nextToken(); } String nextString() { try { return br.readLine(); } catch (IOException e) { eof = true; return null; } } int nextInt() throws IOException { return Integer.parseInt(nextToken()); } long nextLong() throws IOException { return Long.parseLong(nextToken()); } double nextDouble() throws IOException { return Double.parseDouble(nextToken()); } }
Submission Info
Submission Time | |
---|---|
Task | F - Namori |
User | mmaxio |
Language | Java8 (OpenJDK 1.8.0) |
Score | 2200 |
Code Size | 3378 Byte |
Status | AC |
Exec Time | 842 ms |
Memory | 49600 KB |
Compile Error
Note: ./Main.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
Judge Result
Set Name | Sample | Subtask1 | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1500 / 1500 | 700 / 700 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
Subtask1 | 0_00.txt, 0_01.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt, 2_13.txt, 2_14.txt, 2_15.txt, 2_16.txt, 2_17.txt, 2_18.txt, 2_19.txt, 2_20.txt, 2_21.txt, 2_22.txt, 2_23.txt, 2_24.txt, 2_25.txt, 2_26.txt, 2_27.txt, 2_28.txt, 2_29.txt, 2_30.txt, 2_31.txt, 2_32.txt, 2_33.txt, 2_34.txt, 2_35.txt, 2_36.txt, 2_37.txt, 2_38.txt, 2_39.txt, 2_40.txt, 2_41.txt, 2_42.txt, 2_43.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 310 ms | 13560 KB |
0_01.txt | AC | 278 ms | 13164 KB |
0_02.txt | AC | 265 ms | 13172 KB |
0_03.txt | AC | 282 ms | 13940 KB |
1_00.txt | AC | 274 ms | 13260 KB |
1_01.txt | AC | 666 ms | 46100 KB |
1_02.txt | AC | 641 ms | 39820 KB |
1_03.txt | AC | 610 ms | 36272 KB |
1_04.txt | AC | 664 ms | 41912 KB |
1_05.txt | AC | 638 ms | 42924 KB |
1_06.txt | AC | 661 ms | 41688 KB |
1_07.txt | AC | 642 ms | 39968 KB |
1_08.txt | AC | 667 ms | 43068 KB |
1_09.txt | AC | 615 ms | 37228 KB |
1_10.txt | AC | 614 ms | 36576 KB |
1_11.txt | AC | 626 ms | 37184 KB |
1_12.txt | AC | 630 ms | 37112 KB |
1_13.txt | AC | 650 ms | 37700 KB |
1_14.txt | AC | 618 ms | 37372 KB |
1_15.txt | AC | 630 ms | 37232 KB |
1_16.txt | AC | 654 ms | 37224 KB |
1_17.txt | AC | 642 ms | 37140 KB |
2_00.txt | AC | 258 ms | 13068 KB |
2_01.txt | AC | 714 ms | 49600 KB |
2_02.txt | AC | 670 ms | 42252 KB |
2_03.txt | AC | 630 ms | 36424 KB |
2_04.txt | AC | 678 ms | 43064 KB |
2_05.txt | AC | 750 ms | 42060 KB |
2_06.txt | AC | 738 ms | 43268 KB |
2_07.txt | AC | 696 ms | 42832 KB |
2_08.txt | AC | 710 ms | 41960 KB |
2_09.txt | AC | 650 ms | 37120 KB |
2_10.txt | AC | 646 ms | 36852 KB |
2_11.txt | AC | 626 ms | 37432 KB |
2_12.txt | AC | 614 ms | 36676 KB |
2_13.txt | AC | 642 ms | 42316 KB |
2_14.txt | AC | 646 ms | 37284 KB |
2_15.txt | AC | 650 ms | 36464 KB |
2_16.txt | AC | 654 ms | 37308 KB |
2_17.txt | AC | 654 ms | 37356 KB |
2_18.txt | AC | 274 ms | 13776 KB |
2_19.txt | AC | 662 ms | 43044 KB |
2_20.txt | AC | 606 ms | 36140 KB |
2_21.txt | AC | 842 ms | 48764 KB |
2_22.txt | AC | 670 ms | 42968 KB |
2_23.txt | AC | 631 ms | 43064 KB |
2_24.txt | AC | 683 ms | 43524 KB |
2_25.txt | AC | 683 ms | 42644 KB |
2_26.txt | AC | 690 ms | 43000 KB |
2_27.txt | AC | 614 ms | 36748 KB |
2_28.txt | AC | 646 ms | 36848 KB |
2_29.txt | AC | 642 ms | 37340 KB |
2_30.txt | AC | 658 ms | 36688 KB |
2_31.txt | AC | 654 ms | 40692 KB |
2_32.txt | AC | 623 ms | 36972 KB |
2_33.txt | AC | 634 ms | 37380 KB |
2_34.txt | AC | 614 ms | 37368 KB |
2_35.txt | AC | 650 ms | 37216 KB |
2_36.txt | AC | 602 ms | 36468 KB |
2_37.txt | AC | 626 ms | 36476 KB |
2_38.txt | AC | 610 ms | 36720 KB |
2_39.txt | AC | 622 ms | 36688 KB |
2_40.txt | AC | 611 ms | 36828 KB |
2_41.txt | AC | 578 ms | 36228 KB |
2_42.txt | AC | 614 ms | 36896 KB |
2_43.txt | AC | 630 ms | 37048 KB |