제출 #167014

#제출 시각아이디문제언어결과실행 시간메모리
167014egekabasPort Facility (JOI17_port_facility)C++14
0 / 100
2 ms376 KiB
#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long   ll;
typedef unsigned long long   ull;
typedef long double ld;
typedef pair<ll, ll>    pll;
typedef pair<ull, ull>    pull;
typedef pair<int, int>  pii;
typedef pair<ld, ld>  pld;
ll n;
pll ar[1000009];
ll mod = 1e9+7;
ll prt[1000009];
ll find(ll x){
    if(prt[x] == x)
        return x;
    return prt[x] = find(prt[x]);
}
ll merge(ll x, ll y){
    x = find(x);
    y = find(y);
    prt[x] = y;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);
    
    cin >> n;
    for(ll i = 0; i < n; ++i){
        cin >> ar[i].ff >> ar[i].ss;
        prt[i] = i;
    }
    sort(ar, ar+n);
    set<pll> s;
    for(ll i = 0; i < n; ++i){
        while(s.size() > 0){
            auto it = s.begin();
            if((*it).ff < ar[i].ff)
                s.erase(it);
            else
                break;
        }
        auto it = s.upper_bound({ar[i].ss, 0});
        if(it == s.begin()){
            s.insert({ar[i].ss, i});
            continue;
        }
        --it;
        if(it == s.begin()){
            merge((*it).ss, i);
            s.insert({ar[i].ss, i});
            continue;
        }
        else{
            cout << "0\n";
            return 0;
        }
    }
    set<int> s2;
    for(ll i = 0; i < n; ++i)
        s2.insert(find(i));
    cout << (1<<(s2.size())) << "\n";
}

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

port_facility.cpp: In function 'll merge(ll, ll)':
port_facility.cpp:27:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...