Submission #857155

# Submission time Handle Problem Language Result Execution time Memory
857155 2023-10-05T13:06:32 Z ntkphong Friend (IOI14_friend) C++14
0 / 100
1 ms 600 KB
#include "friend.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXSIZE = 1e5 + 10;
vector<vector<int>> g;

vector<int> vis, col;
vector<int> match;

void dfs(int u, vector<int> &L, vector<int> &R) {
    vis[u] = 1;
    if(!col[u]) L.push_back(u); 
           else R.push_back(u);
    
    for(int v : g[u]) {
        if(vis[v]) continue ;
        col[v] = col[u] ^ 1;
        dfs(v, L, R);
    }
}

int DFS(int u) {
    if(vis[u]) return 0;
    vis[u] = 1;
    
    for(int v : g[u]) {
        if(match[v] == -1 || DFS(v)) {
            match[v] = u;
            return 1;
        }
    }
    
    return 0;
}

int sub(int n) {  
    vis.resize(n, 0);
    col.resize(n, 0);
    match.resize(n, -1);
    
    int total = 0;
    for(int i = 0; i < n; i ++) {
        if(vis[i]) continue ;
        
        vector<int> L, R;
        dfs(i, L, R);
        
        for(int x : R) match[x] = -1;
        
        for(int x : L) {
            for(int y : L) {
                vis[y] = 0;
            }
            
            DFS(x);
        }
        
        for(int x : R) total += match[x] != -1;
    }
    
    return n - total;
}

int findSample(int n, int confidence[], int host[], int protocol[]){
    g.resize(n);
    
    for(int i = 1; i < n; i ++) {
        int p = host[i];
        
        if(protocol[i] == 0 || protocol[i] == 2) {
            g[i].push_back(p);
            g[p].push_back(i);
        }
        
        if(protocol[i] == 1 || protocol[i] == 2) {
            for(int v : g[p]) {
                g[i].push_back(v);
                g[v].push_back(i);
            }
        }
    }
    
    return sub(n);
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 448 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 444 KB Output is correct
2 Correct 0 ms 444 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 516 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 444 KB Output is correct
9 Correct 1 ms 600 KB Output is correct
10 Correct 1 ms 448 KB Output is correct
11 Incorrect 1 ms 348 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -