Submission #2011439
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+15;
vector<int> adj[N];
int par[N];
int sz[N];
int find(int a){
if(a==par[a])return a;
return par[a]= find(par[a]);
}
void merge(int a,int b){
a = find(a),b = find(b);
if(a==b)return;
par[b]= a;
sz[a]+=sz[b];
}
int type[N];
int color[N];
int dfs(int x,int c){
if(color[x]!=-1){
if(color[x]!=c)return 1;
return 0;
}
color[x]= c;
int u,i,ret = 0;
for(i=0;i<adj[x].size();++i){
u = adj[x][i];
ret |= dfs(u,c^1);
}
return ret;
}
int num[3];
int main(){
int n,m,i,a,b;
cin>>n>>m;
for(i=1;i<=n;++i)par[i]= i,sz[i]= 1;
for(i=0;i<m;++i){
scanf("%d%d",&a,&b);
adj[a].push_back(b);
adj[b].push_back(a);
merge(a,b);
}
vector<int> id;
memset(color,-1,sizeof(color));
for(i=1;i<=n;++i)
if(find(i)==i)
id.push_back(i);
for(i=0;i<id.size();++i){
a = id[i];
if(sz[a]==1){
type[a]= 0;
}
else {
if(!dfs(a,0))
type[a]= 1;
else
type[a]= 2;
}
++num[type[a]];
}
//0 --> sz1 , 1--> (0-1 graph) , 2--> cyle 포함하는 그래프
long long ret = 0;
for(i=0;i<id.size();++i){
a = id[i];
if(type[a]==0)
ret+=n;
else if(type[a]==1){
ret+= (long long)sz[a]*num[0];
ret+= (long long)num[1]*2;
ret+= num[2];
}
else{
ret+= (long long)sz[a]*num[0];
ret+= (long long)num[1] + num[2];
}
}
cout<<ret<<endl;
}
Submission Info
Submission Time
2018-01-23 17:56:00+0900
Task
C - Squared Graph
User
ffresh
Language
C++14 (GCC 5.4.1)
Score
800
Code Size
1942 Byte
Status
AC
Exec Time
92 ms
Memory
11136 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:56:28: 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
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
2944 KB
in10.txt
AC
4 ms
4728 KB
in11.txt
AC
3 ms
2944 KB
in12.txt
AC
24 ms
7552 KB
in13.txt
AC
24 ms
7548 KB
in14.txt
AC
43 ms
7548 KB
in15.txt
AC
7 ms
4984 KB
in16.txt
AC
33 ms
6136 KB
in17.txt
AC
27 ms
7164 KB
in18.txt
AC
61 ms
8448 KB
in19.txt
AC
49 ms
8320 KB
in2.txt
AC
3 ms
2944 KB
in20.txt
AC
50 ms
8320 KB
in21.txt
AC
92 ms
11136 KB
in22.txt
AC
51 ms
6400 KB
in23.txt
AC
36 ms
5248 KB
in24.txt
AC
4 ms
4732 KB
in25.txt
AC
91 ms
11136 KB
in26.txt
AC
3 ms
2944 KB
in27.txt
AC
3 ms
3072 KB
in28.txt
AC
91 ms
11136 KB
in3.txt
AC
3 ms
2944 KB
in4.txt
AC
3 ms
2944 KB
in5.txt
AC
57 ms
7288 KB
in6.txt
AC
6 ms
4988 KB
in7.txt
AC
6 ms
4856 KB
in8.txt
AC
11 ms
5496 KB
in9.txt
AC
28 ms
6524 KB
sample1.txt
AC
2 ms
2944 KB
sample2.txt
AC
3 ms
2944 KB