Submission #1794858


Source Code Expand

#include<bits/stdc++.h>

using namespace std;

using int64 = long long;
using vi = vector< int >;
using vii = vector< vi >;
const int mod = 1e9 + 7;

struct UnionFind
{
  vector< int > data;

  UnionFind(int sz)
  {
    data.assign(sz, -1);
  }

  bool unite(int x, int y)
  {
    x = find(x), y = find(y);
    if(x == y) return (false);
    if(data[x] > data[y]) swap(x, y);
    data[x] += data[y];
    data[y] = x;
    return (true);
  }

  int find(int k)
  {
    if(data[k] < 0) return (k);
    return (data[k] = find(data[k]));
  }

  int size(int k)
  {
    return (-data[find(k)]);
  }
};

int main()
{
  int N, M;
  vector< pair< int, int > > g[400000];
  int64 fact[400001];
  bool deg[400000] = {};

  fact[0] = 1;
  for(int i = 1; i < 400001; i++) {
    fact[i] = fact[i - 1] * 2 % mod;
  }

  scanf("%d %d", &N, &M);
  UnionFind uf(M);
  int ret = 0;

  for(int i = 0; i < M; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    --a, --b;
    if(uf.unite(a, b)) {
      g[a].emplace_back(b, i);
      g[b].emplace_back(a, i);
    }
    deg[a] ^= 1;
    deg[b] ^= 1;
    (ret += fact[i + 1]) %= mod;
  }


  function< bool(int, int) > dfs = [&](int idx, int par)
  {
    bool flag = deg[idx];
    for(auto &e : g[idx]) {
      if(e.first == par) continue;
      bool f = dfs(e.first, idx);
      if(f & 1) (ret += fact[e.second + 1]) %= mod;
      flag ^= f;
    }
    return (flag);
  };
  dfs(0, -1);
  printf("%d\n", ret);
}

Submission Info

Submission Time
Task C - ドライブ
User ei13333
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1523 Byte
Status WA
Exec Time 270 ms
Memory 41728 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:53: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:59:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &a, &b);
                           ^

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 40 0 / 70
Status
AC × 2
AC × 15
WA × 5
AC × 17
WA × 18
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 8 ms 13308 KB
sample_02.txt AC 7 ms 13184 KB
subtask1_01.txt WA 7 ms 13184 KB
subtask1_02.txt AC 7 ms 13184 KB
subtask1_03.txt AC 8 ms 13184 KB
subtask1_04.txt AC 9 ms 13184 KB
subtask1_05.txt AC 8 ms 13184 KB
subtask1_06.txt AC 8 ms 13184 KB
subtask1_07.txt AC 8 ms 13184 KB
subtask1_08.txt AC 8 ms 13184 KB
subtask1_09.txt AC 8 ms 13184 KB
subtask1_10.txt WA 8 ms 13184 KB
subtask1_11.txt WA 8 ms 13184 KB
subtask1_12.txt WA 8 ms 13312 KB
subtask1_13.txt WA 8 ms 13312 KB
subtask1_14.txt AC 8 ms 13184 KB
subtask1_15.txt AC 7 ms 13184 KB
subtask1_16.txt AC 8 ms 13312 KB
subtask1_17.txt AC 8 ms 13184 KB
subtask1_18.txt AC 8 ms 13184 KB
subtask2_01.txt WA 246 ms 29568 KB
subtask2_02.txt WA 263 ms 29824 KB
subtask2_03.txt WA 189 ms 30444 KB
subtask2_04.txt WA 259 ms 28928 KB
subtask2_05.txt WA 188 ms 29312 KB
subtask2_06.txt WA 228 ms 29696 KB
subtask2_07.txt WA 159 ms 30572 KB
subtask2_08.txt WA 240 ms 41728 KB
subtask2_09.txt WA 270 ms 29952 KB
subtask2_10.txt AC 49 ms 16896 KB
subtask2_11.txt AC 59 ms 14848 KB
subtask2_12.txt WA 156 ms 23540 KB
subtask2_13.txt WA 230 ms 26624 KB
subtask2_14.txt WA 235 ms 29184 KB
subtask2_15.txt WA 80 ms 15232 KB