Submission #1870595
Source Code Expand
#include <iostream>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
#include <iterator>
#include <bitset>
#include <ctime>
using namespace std;
#define F(i, n) for(int i = 0; i < n; ++i)
#define FOR(i,a,b) for (int i = (a); i < (b); i++)
#define RFOR(i,b,a) for (int i = (b)-1; i >= (a); i--)
#define ITER(it,a) for (__typeof(a.begin()) it = a.begin(); it != a.end(); it++)
#define FILL(a,value) memset(a, value, sizeof(a))
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
const double PI = acos(-1.0);
const int INF = 1000 * 1000 * 1000 + 7;
const LL LINF = INF * (LL) INF;
const int MAX =2*100000 + 47;
VI G[MAX];
int C[MAX];
int cnt[MAX];
bool b;
void dfs(int v, int c)
{
C[v] = c;
cnt[c]++;
FOR(i, 0, SZ(G[v]))
{
int to = G[v][i];
if (C[to] != -1)
{
if (C[to] == C[v])
b = false;
continue;
}
dfs(to, c ^ 1);
}
}
int main()
{
//freopen("in.txt", "r", stdin);
int n, m;
scanf("%d%d", &n, &m);
FOR(i, 0, m)
{
int x, y;
scanf("%d%d", &x, &y);
--x, --y;
G[x].PB(y);
G[y].PB(x);
}
FILL(C, -1);
LL NB = 0;
LL C1 = 0, CC = 0;
FOR(i, 0, n)
if (C[i] == -1)
{
cnt[0] = cnt[1] = 0;
b = 1;
dfs(i, 0);
if (!b)++NB;
else
{
if (!cnt[1])++C1;
else ++CC;
}
}
LL res = NB * NB;
res += 2 * CC * CC;
res += 2 * CC * NB;
res += 2 * C1 * n - C1 * C1;
cout << res << endl;
}
Submission Info
Submission Time |
|
Task |
C - Squared Graph |
User |
vjudge4 |
Language |
C++14 (GCC 5.4.1) |
Score |
800 |
Code Size |
1996 Byte |
Status |
AC |
Exec Time |
82 ms |
Memory |
13568 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:72:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &n, &m);
^
./Main.cpp:76:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &x, &y);
^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
800 / 800 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample1.txt, sample2.txt |
All |
sample1.txt, sample2.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in3.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt |
Case Name |
Status |
Exec Time |
Memory |
in1.txt |
AC |
3 ms |
5760 KB |
in10.txt |
AC |
4 ms |
5760 KB |
in11.txt |
AC |
3 ms |
5760 KB |
in12.txt |
AC |
21 ms |
8832 KB |
in13.txt |
AC |
22 ms |
8832 KB |
in14.txt |
AC |
40 ms |
8832 KB |
in15.txt |
AC |
7 ms |
6016 KB |
in16.txt |
AC |
30 ms |
7296 KB |
in17.txt |
AC |
24 ms |
8448 KB |
in18.txt |
AC |
55 ms |
10112 KB |
in19.txt |
AC |
43 ms |
10112 KB |
in2.txt |
AC |
3 ms |
5760 KB |
in20.txt |
AC |
44 ms |
10240 KB |
in21.txt |
AC |
82 ms |
13568 KB |
in22.txt |
AC |
52 ms |
9216 KB |
in23.txt |
AC |
38 ms |
7936 KB |
in24.txt |
AC |
4 ms |
5760 KB |
in25.txt |
AC |
81 ms |
13568 KB |
in26.txt |
AC |
3 ms |
5760 KB |
in27.txt |
AC |
4 ms |
5760 KB |
in28.txt |
AC |
81 ms |
13568 KB |
in3.txt |
AC |
3 ms |
5760 KB |
in4.txt |
AC |
3 ms |
5760 KB |
in5.txt |
AC |
54 ms |
8448 KB |
in6.txt |
AC |
6 ms |
6016 KB |
in7.txt |
AC |
6 ms |
5888 KB |
in8.txt |
AC |
10 ms |
6528 KB |
in9.txt |
AC |
25 ms |
7936 KB |
sample1.txt |
AC |
3 ms |
5760 KB |
sample2.txt |
AC |
3 ms |
5760 KB |