답안 #150783

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
150783 2019-09-01T08:55:44 Z graneli(#3789, toloraia) 갈라파고스 여행 (FXCUP4_island) C++17
0 / 100
389 ms 45796 KB
#include "island.h"
#include <bits/stdc++.h>
#define F first
#define S second
#define mp make_pair
#define pb push_back
//#define ll __int128
#define ll long long
#define LEFT(a) ((a)<<1)
#define RIGHT(a) (LEFT(a) + 1)
#define MID(a,b) ((a+b)>>1)
#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)<(b)?(a):(b))
#define y1 y122
using namespace std;

const int N = 300005;
int n, m;
vector < int > V[N];
int par[N];
set < pair < int, int > > S[N];

void Init(int K, std::vector<int> F, std::vector<int> Ss, std::vector<int> E){
	n = F.size(), m = Ss.size();
	// ToDo
	for (int i = 0; i < n; i++){
        S[i].insert ({m, i});
        par[i] = i;
        V[i].pb (i);
	}
	for (int i = m - 1; i >= 0; i--){
        int u = Ss[i], v = E[i];
        u = par[u];
        v = par[v];
        if (u == v)
            continue;
        if ((int)V[u].size() > (int)V[v].size())
            swap (u, v);
        for (int x : V[u]){
            par[x] = v;
            V[v].pb (x);
            S[x].insert ({i, v});
        }
        V[u].clear();
	}
}

int Separate(int A, int B){
    int l = 0, r = m - 1;
    //cout << A << " " << B << endl;
    while (l < r){
        int mid = l + r + 1 >> 1;
        int x, y;
        auto I = S[A].lower_bound ({mid, 0});
        x = (*I).S;
        I = S[B].lower_bound ({mid, 0});
        y = (*I).S;
        //cout << mid << " " << x << " " << y << endl;
        if (x == y)
            l = mid;
        else
            r = mid - 1;
    }
	return l;
}

Compilation message

island.cpp: In function 'int Separate(int, int)':
island.cpp:52:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         int mid = l + r + 1 >> 1;
                   ~~~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 389 ms 45796 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 21504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 20 ms 21504 KB Output isn't correct
2 Halted 0 ms 0 KB -