제출 #126674

#제출 시각아이디문제언어결과실행 시간메모리
126674abacabaRonald (COCI17_ronald)C++14
120 / 120
60 ms1372 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 1e3 + 15;
int n, m, p[N], sz[N];
bool g[N][N], used[N], was[N];

int find(int v) {
	if(v == p[v])
		return v;
	return p[v] = find(p[v]);
}

void unio(int a, int b) {
	a = find(a);
	b = find(b);
	if(a != b) {
		if(sz[a] < sz[b])
			swap(a, b);
		p[b] = a;
		sz[a] += sz[b];
	}
}

bool dfs(int v, bool rev) {
	used[v] = true;
	if(rev)
		for(int i = 1; i <= n; ++i) {
			g[i][v] ^= 1;
			g[v][i] ^= 1;
		}
	for(int i = 1; i <= n; ++i)
		if(i != v && !g[i][v])
			if(used[i] || !dfs(i, 1))
				return false;
	return true;
}
 
int main() {
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= n; ++i)
		p[i] = i, sz[i] = 1;
	for(int i = 1; i <= m; ++i) {
		int u, v;
		scanf("%d%d", &u, &v);
		unio(u, v);
		g[u][v] = g[v][u] = true;
	}
	for(int i = 1; i <= n; ++i) {
		if(!was[find(i)]) {
			memset(used, 0, sizeof(used));
			bool flag1 = dfs(i, 0);

			memset(used, 0, sizeof(used));
			bool flag2 = dfs(i, 1);
			if(!flag1 && !flag2) {
				puts("NE");
				return 0;
			}
			was[find(i)] = true;
		}
	}
	puts("DA");
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

ronald.cpp: In function 'int main()':
ronald.cpp:40:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
  ~~~~~^~~~~~~~~~~~~~~~
ronald.cpp:45:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &u, &v);
   ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...