Submission #992654


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

const long long inf = (long long) 1e18;

const int N = 1234567;

int p[N];
long long best[N];
pair < long long, pair <int, int> > e[N];

int find_set(int x) {
  if (x != p[x]) {
    p[x] = find_set(p[x]);
  }
  return p[x];
}

int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; i++) {
    best[i] = inf;
  }
  for (int i = 0; i < m; i++) {
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);
    e[i] = make_pair(z, make_pair(x, y));
    best[x] = min(best[x], z + 1LL);
    best[y] = min(best[y], z + 2LL);
  }
  for (int it = 0; it < 2; it++) {
    for (int i = 0; i < n; i++) {
      if (best[i] + 2 < best[(i + 1) % n]) {
        best[(i + 1) % n] = best[i] + 2;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    e[m + i] = make_pair(best[i], make_pair(i, (i + 1) % n));
  }
  sort(e, e + m + n);
  for (int i = 0; i < n; i++) {
    p[i] = i;
  }
  long long ans = 0;
  for (int i = 0; i < m + n; i++) {
    int x = e[i].second.first;
    int y = e[i].second.second;
    int fx = find_set(x);
    int fy = find_set(y);
    if (fx != fy) {
      ans += e[i].first;
      p[fx] = fy;
    }
  }
  cout << ans << endl;
  return 0;
}

Submission Info

Submission Time
Task G - Zigzag MST
User tourist
Language C++14 (GCC 5.4.1)
Score 1300
Code Size 1270 Byte
Status AC
Exec Time 119 ms
Memory 12032 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:22:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &n, &m);
                         ^
./Main.cpp:28:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d %d", &x, &y, &z);
                                  ^

Judge Result

Set Name sample all
Score / Max Score 0 / 0 1300 / 1300
Status
AC × 3
AC × 33
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt
Case Name Status Exec Time Memory
01-01.txt AC 3 ms 256 KB
01-02.txt AC 68 ms 3328 KB
01-03.txt AC 108 ms 9088 KB
01-04.txt AC 28 ms 8064 KB
01-05.txt AC 19 ms 6784 KB
01-06.txt AC 24 ms 7296 KB
01-07.txt AC 23 ms 6144 KB
01-08.txt AC 25 ms 5888 KB
01-09.txt AC 33 ms 5888 KB
01-10.txt AC 72 ms 7296 KB
01-11.txt AC 93 ms 6144 KB
01-12.txt AC 117 ms 8832 KB
01-13.txt AC 115 ms 8832 KB
01-14.txt AC 115 ms 8832 KB
01-15.txt AC 119 ms 8832 KB
01-16.txt AC 118 ms 8832 KB
01-17.txt AC 115 ms 8960 KB
01-18.txt AC 86 ms 12032 KB
01-19.txt AC 22 ms 6272 KB
01-20.txt AC 34 ms 5760 KB
01-21.txt AC 61 ms 6656 KB
01-22.txt AC 112 ms 8832 KB
01-23.txt AC 112 ms 8832 KB
01-24.txt AC 23 ms 9088 KB
01-25.txt AC 104 ms 11904 KB
01-26.txt AC 31 ms 8832 KB
01-27.txt AC 35 ms 7424 KB
01-28.txt AC 82 ms 9344 KB
01-29.txt AC 99 ms 7296 KB
01-30.txt AC 118 ms 10368 KB
sample-01.txt AC 3 ms 256 KB
sample-02.txt AC 3 ms 256 KB
sample-03.txt AC 3 ms 256 KB