Submission #23705

#TimeUsernameProblemLanguageResultExecution timeMemory
23705HiasatFriend (IOI14_friend)C++14
23 / 100
0 ms3360 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; vector<int> adj[1002]; int c[1002], vis[1001], vsId, match[1001]; vector<int> fv[2]; void dfs(int u , int color) { if (c[u] != -1) { assert(c[u] == color); return; } c[u] = color; fv[color].push_back(u); for (int i = 0; i < adj[u].size(); ++i) { dfs(adj[u][i], !color); } } bool findMatch(int u) { vis[u] = vsId; for (int i = 0; i < adj[u].size(); ++i) { int v = adj[u][i]; if (match[v] == -1 || vis[match[v]] != vsId && findMatch(match[v])) { match[v] = u; return true; } } return false; } int findSample(int n, int confidence[], int host[], int protocol[]) { memset(c, -1, sizeof c); for (int i = 1 ; i <= n - 1; i++) { if (protocol[i] == 0) { adj[host[i]].push_back(i); adj[i].push_back(host[i]); } if (protocol[i] == 1) { for (int j = 0 ; j < adj[host[i]].size(); j++) { int v = adj[host[i]][j]; adj[v].push_back(i); adj[i].push_back(v); } } } memset(match, -1, sizeof match); int cur = 0; for (int i = 0; i < n; ++i) { if (c[i] != -1) continue; dfs(i, 0); } for (int j = 0 ; j < fv[0].size(); j++) { int v = fv[0][j]; vsId++; if (findMatch(v)) cur++; } return n - cur; }

Compilation message (stderr)

friend.cpp: In function 'void dfs(int, int)':
friend.cpp:20:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < adj[u].size(); ++i) {
                    ^
friend.cpp: In function 'bool findMatch(int)':
friend.cpp:26:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < adj[u].size(); ++i) {
                    ^
friend.cpp:28:47: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   if (match[v] == -1 || vis[match[v]] != vsId && findMatch(match[v])) {
                                               ^
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:43:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int j = 0 ; j < adj[host[i]].size(); j++) {
                       ^
friend.cpp:57:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int j = 0 ; j < fv[0].size(); j++) {
                     ^
#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...