Submission #1665502


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

vector<int> ch[100005];
int col[100005];
int n, m;

bool impossible()
{
	bool had = false;
	for (int i = 0;i < n;i++) if (ch[i].size() >= 2)
	{
		if (had) return false;
		had = true;
	}
	return true;
}

bool dfs(int at)
{
	for (int u: ch[at])
	{
		int c = !col[at];
		if (col[u] == 2)
		{
			col[u] = c;
			if (!dfs(u)) return false;
		} else if (col[u] != c)
			return false;
	}
	return true;
}

bool bipartite()
{
	for (int i = 0;i < n;i++) col[i] = 2;
	col[0] = 0;
	return dfs(0);
}

int main()
{
	scanf("%d%d", &n, &m);
	for (int i = 0;i < m;i++)
	{
		int a, b; scanf("%d%d", &a, &b);
		--a, --b;
		ch[a].push_back(b);
		ch[b].push_back(a);
	}
	if (impossible()) printf("0\n");
	else if (!bipartite()) printf("%lld\n", 1ll*n*(n-1)/2-m);
	else
	{
		ll a = 0, b = 0;
		for (int i = 0;i < n;i++) (col[i]?a:b)++;
		printf("%lld\n", a*b-m);
	}
	return 0;
}

Submission Info

Submission Time
Task C - 3 Steps
User jerrym
Language C++14 (GCC 5.4.1)
Score 500
Code Size 988 Byte
Status AC
Exec Time 40 ms
Memory 6400 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:45:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
                       ^
./Main.cpp:48:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   int a, b; scanf("%d%d", &a, &b);
                                  ^

Judge Result

Set Name sample all
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 28
Set Name Test Cases
sample sample-01.txt, sample-02.txt
all sample-01.txt, sample-02.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, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
01-01.txt AC 3 ms 2560 KiB
01-02.txt AC 3 ms 2560 KiB
01-03.txt AC 3 ms 2560 KiB
01-04.txt AC 3 ms 2560 KiB
01-05.txt AC 3 ms 2560 KiB
01-06.txt AC 3 ms 2560 KiB
01-07.txt AC 3 ms 2560 KiB
01-08.txt AC 3 ms 2560 KiB
01-09.txt AC 3 ms 2688 KiB
01-10.txt AC 3 ms 2688 KiB
02-01.txt AC 35 ms 5888 KiB
02-02.txt AC 38 ms 6144 KiB
02-03.txt AC 37 ms 6144 KiB
02-04.txt AC 40 ms 6144 KiB
02-05.txt AC 40 ms 6144 KiB
02-06.txt AC 37 ms 6144 KiB
02-07.txt AC 33 ms 4992 KiB
02-08.txt AC 35 ms 5888 KiB
02-09.txt AC 35 ms 6144 KiB
02-10.txt AC 19 ms 3968 KiB
02-11.txt AC 27 ms 4224 KiB
02-12.txt AC 36 ms 5376 KiB
02-13.txt AC 33 ms 6016 KiB
02-14.txt AC 40 ms 6400 KiB
sample-01.txt AC 3 ms 2560 KiB
sample-02.txt AC 3 ms 2560 KiB