Submission #3403683
Source Code Expand
#include <algorithm> #include <bitset> #include <complex> #include <deque> #include <exception> #include <fstream> #include <functional> #include <iomanip> #include <ios> #include <iosfwd> #include <iostream> #include <istream> #include <iterator> #include <limits> #include <list> #include <locale> #include <map> #include <memory> #include <new> #include <numeric> #include <ostream> #include <queue> #include <set> #include <sstream> #include <stack> #include <stdexcept> #include <streambuf> #include <string> #include <typeinfo> #include <utility> #include <valarray> #include <vector> #include <climits> #define rep(i, m, n) for(int i=int(m);i<int(n);i++) #define all(c) begin(c),end(c) template<typename T1, typename T2> inline void chmin(T1 &a, T2 b) { if (a > b) a = b; } template<typename T1, typename T2> inline void chmax(T1 &a, T2 b) { if (a < b) a = b; } //改造 typedef long long int ll; using namespace std; #define INF (1 << 30) - 1 #define INFl (ll)5e15 #define DEBUG 0 //デバッグする時1にしてね #define dump(x) cerr << #x << " = " << (x) << endl #define MOD 1000000007 //ここから編集する int N, M; vector<vector<int> > G; vector<int> color; // ぼっちなら0 // 二部グラフなら1 // 二部グラフじゃないなら-1 // paint(v,1)で呼び出す int paint(int v, int c) { if (G[v].size() == 0) return 0; if (color[v] != 0) { if (color[v] != c) return -1; return 1; } color[v] = c; int ret = 1; for (auto e : G[v]) { if (paint(e, -c) == -1) { // return -1; ret = -1; } } return ret; } int main() { cin.tie(0); ios::sync_with_stdio(false); cin >> N >> M; G.resize(N); color.resize(N); for (int i = 0; i < M; ++i) { int a, b; cin >> a >> b; a--, b--; G[a].push_back(b); G[b].push_back(a); } // x 二部じゃない y 二部 z ぼっち //(x + y) ^ 2 + y * y + 2 * z * N - 1が答え ll x = 0ll, y = 0ll, z = 0ll; for (int i = 0; i < N; ++i) { if (color[i] == 0) { int val = paint(i, 1); if (val == 0) z++; if (val == 1) y++; if (val == -1) x++; } } // ll ans = (x + y) * (x + y) + y * y + 2 * z * N - 1; ll ans = 1ll * N * N - 1ll * (N - z) * (N - z) + (x + y) * (x + y) + y * y; cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Squared Graph |
User | homesentinel |
Language | C++14 (Clang 3.8.0) |
Score | 800 |
Code Size | 2557 Byte |
Status | AC |
Exec Time | 342 ms |
Memory | 9984 KB |
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 | 7 ms | 888 KB |
in10.txt | AC | 3 ms | 2944 KB |
in11.txt | AC | 1 ms | 256 KB |
in12.txt | AC | 87 ms | 6144 KB |
in13.txt | AC | 88 ms | 6144 KB |
in14.txt | AC | 171 ms | 6144 KB |
in15.txt | AC | 16 ms | 3328 KB |
in16.txt | AC | 130 ms | 4608 KB |
in17.txt | AC | 95 ms | 5632 KB |
in18.txt | AC | 236 ms | 7040 KB |
in19.txt | AC | 174 ms | 7040 KB |
in2.txt | AC | 1 ms | 256 KB |
in20.txt | AC | 175 ms | 7040 KB |
in21.txt | AC | 341 ms | 9984 KB |
in22.txt | AC | 284 ms | 3840 KB |
in23.txt | AC | 240 ms | 2560 KB |
in24.txt | AC | 4 ms | 3072 KB |
in25.txt | AC | 342 ms | 9984 KB |
in26.txt | AC | 1 ms | 256 KB |
in27.txt | AC | 2 ms | 384 KB |
in28.txt | AC | 342 ms | 9984 KB |
in3.txt | AC | 1 ms | 256 KB |
in4.txt | AC | 1 ms | 256 KB |
in5.txt | AC | 274 ms | 5632 KB |
in6.txt | AC | 12 ms | 3328 KB |
in7.txt | AC | 14 ms | 3200 KB |
in8.txt | AC | 31 ms | 3840 KB |
in9.txt | AC | 102 ms | 4992 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |