Submission #832588

# Submission time Handle Problem Language Result Execution time Memory
832588 2023-08-21T12:05:06 Z LucaIlie Port Facility (JOI17_port_facility) C++17
22 / 100
6000 ms 2164 KB
#include <bits/stdc++.h>

using namespace std;

struct container {
    int l, r;

    bool operator < ( container c ) {
        return l < c.l;
    }
};

const int MAX_N = 1e6;
const int MOD = 1e9 + 7;

int n;
bool bipartit = true;
bool vis[MAX_N], side[MAX_N];
container containers[MAX_N];

void checkBipartit( int u ) {
    vis[u] = true;
    for ( int v = 0; v < u; v++ ) {
        if ( !(containers[v].r > containers[u].l && containers[v].r < containers[u].r) )
            continue;

        if ( vis[v] ) {
            if ( side[u] == side[v] )
                bipartit = false;
        } else {
            side[v] = side[u] ^ 1;
            checkBipartit( v );
        }
    }
    for ( int v = u + 1; v < n; v++ ) {
        if ( !(containers[u].r > containers[v].l && containers[u].r < containers[v].r) )
            continue;

        if ( vis[v] ) {
            if ( side[u] == side[v] )
                bipartit = false;
        } else {
            side[v] = side[u] ^ 1;
            checkBipartit( v );
        }
    }
}

int main() {
    cin >> n;
    for ( int i = 0; i < n; i++ )
        cin >> containers[i].l >> containers[i].r;

    sort( containers, containers + n );

    int comp = 0;
    for ( int u = 0; u < n; u++ ) {
        if ( !vis[u] ) {
            side[u] = 0;
            checkBipartit( u );
            comp++;
        }
    }

    if ( bipartit ) {
        int ans = 1;
        for ( int i = 0; i < comp; i++ )
            ans = ans * 2 % MOD;
        cout << ans;
    } else
        cout << 0;

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 5 ms 340 KB Output is correct
26 Correct 5 ms 340 KB Output is correct
27 Correct 5 ms 340 KB Output is correct
28 Correct 5 ms 340 KB Output is correct
29 Correct 4 ms 340 KB Output is correct
30 Correct 5 ms 340 KB Output is correct
31 Correct 5 ms 368 KB Output is correct
32 Correct 6 ms 340 KB Output is correct
33 Correct 6 ms 340 KB Output is correct
34 Correct 5 ms 396 KB Output is correct
35 Correct 4 ms 340 KB Output is correct
36 Correct 4 ms 340 KB Output is correct
37 Correct 5 ms 340 KB Output is correct
38 Correct 5 ms 340 KB Output is correct
39 Correct 4 ms 340 KB Output is correct
40 Correct 4 ms 340 KB Output is correct
41 Correct 5 ms 340 KB Output is correct
42 Correct 5 ms 452 KB Output is correct
43 Correct 4 ms 340 KB Output is correct
44 Correct 4 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 5 ms 340 KB Output is correct
26 Correct 5 ms 340 KB Output is correct
27 Correct 5 ms 340 KB Output is correct
28 Correct 5 ms 340 KB Output is correct
29 Correct 4 ms 340 KB Output is correct
30 Correct 5 ms 340 KB Output is correct
31 Correct 5 ms 368 KB Output is correct
32 Correct 6 ms 340 KB Output is correct
33 Correct 6 ms 340 KB Output is correct
34 Correct 5 ms 396 KB Output is correct
35 Correct 4 ms 340 KB Output is correct
36 Correct 4 ms 340 KB Output is correct
37 Correct 5 ms 340 KB Output is correct
38 Correct 5 ms 340 KB Output is correct
39 Correct 4 ms 340 KB Output is correct
40 Correct 4 ms 340 KB Output is correct
41 Correct 5 ms 340 KB Output is correct
42 Correct 5 ms 452 KB Output is correct
43 Correct 4 ms 340 KB Output is correct
44 Correct 4 ms 468 KB Output is correct
45 Execution timed out 6054 ms 2164 KB Time limit exceeded
46 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Correct 1 ms 212 KB Output is correct
20 Correct 0 ms 212 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
22 Correct 1 ms 212 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 0 ms 212 KB Output is correct
25 Correct 5 ms 340 KB Output is correct
26 Correct 5 ms 340 KB Output is correct
27 Correct 5 ms 340 KB Output is correct
28 Correct 5 ms 340 KB Output is correct
29 Correct 4 ms 340 KB Output is correct
30 Correct 5 ms 340 KB Output is correct
31 Correct 5 ms 368 KB Output is correct
32 Correct 6 ms 340 KB Output is correct
33 Correct 6 ms 340 KB Output is correct
34 Correct 5 ms 396 KB Output is correct
35 Correct 4 ms 340 KB Output is correct
36 Correct 4 ms 340 KB Output is correct
37 Correct 5 ms 340 KB Output is correct
38 Correct 5 ms 340 KB Output is correct
39 Correct 4 ms 340 KB Output is correct
40 Correct 4 ms 340 KB Output is correct
41 Correct 5 ms 340 KB Output is correct
42 Correct 5 ms 452 KB Output is correct
43 Correct 4 ms 340 KB Output is correct
44 Correct 4 ms 468 KB Output is correct
45 Execution timed out 6054 ms 2164 KB Time limit exceeded
46 Halted 0 ms 0 KB -