Submission #953488

# Submission time Handle Problem Language Result Execution time Memory
953488 2024-03-26T03:21:40 Z willychan Port Facility (JOI17_port_facility) C++17
22 / 100
25 ms 16496 KB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
//#include<bits/extc++.h>
//__gnu_pbds
/*

is I know the division, checking will be if there a segment that intersegt and not entirly contain.

i think this is a dp problem.. 

every segment will have some segment that it cannot be together with.. , count the number of partition

it can be turn into count the number of way to 2-color a graph
the answer seems to be 2^x ??? why
*/


struct DSU{
	vector<int> P;
	int n;
	void init(int _n){
		n = _n;
		P.resize(_n+1);
		for(int i=1;i<=n;i++) P[i]=i;
	}
	int query(int a){
		if(P[a]==a) return a;
		P[a] = query(P[a]);
		return P[a];
	}
	void join(int a,int b){
		a = query(a);
		b = query(b);
		P[a]=b;
		return;
	}
};

const int MOD = 1e9+7;
const int N = 2005;
vector<int> side[N];

int vis[N];

bool dfs(int cur,int c){
	vis[cur]=3-c;
	bool k = 1;
	for(auto i : side[cur]){
		if(!vis[i])	k&=dfs(i,vis[cur]);
		else if(vis[i]==vis[cur]){
			return 0;
		}
	}
	return k;
}

int main(){
	ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int n;cin>>n;	
	vector<pair<int,int> > seg(n+1);
	for(int i=1;i<=n;i++) cin>>seg[i].first>>seg[i].second;
	sort(seg.begin()+1,seg.end(),[](const pair<int,int> &a,const pair<int,int> &b){return a.second<b.second;});
	DSU d;
	d.init(n);
	for(int i=1;i<=n;i++){
		for(int j=i-1;j>=1;j--)	{
			if(seg[i].first>seg[j].second) continue;
			if(seg[j].first>seg[i].first) continue;
			side[i].push_back(j);
			side[j].push_back(i);
		}
	}
	ll ans = 1;
	for(int i=1;i<=n;i++){
		if(!vis[i]) {
			if(!dfs(i,2)){
				cout<<0<<"\n";
				return 0;
			}
			ans = (2*ans)%MOD;
		}
	}
	cout<<ans<<"\n";
	
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 6 ms 600 KB Output is correct
26 Correct 7 ms 860 KB Output is correct
27 Correct 6 ms 656 KB Output is correct
28 Correct 6 ms 860 KB Output is correct
29 Correct 6 ms 856 KB Output is correct
30 Correct 7 ms 908 KB Output is correct
31 Correct 6 ms 860 KB Output is correct
32 Correct 6 ms 604 KB Output is correct
33 Correct 6 ms 604 KB Output is correct
34 Correct 6 ms 600 KB Output is correct
35 Correct 6 ms 348 KB Output is correct
36 Correct 6 ms 348 KB Output is correct
37 Correct 20 ms 16496 KB Output is correct
38 Correct 12 ms 8540 KB Output is correct
39 Correct 6 ms 344 KB Output is correct
40 Correct 6 ms 348 KB Output is correct
41 Correct 14 ms 8760 KB Output is correct
42 Correct 13 ms 8540 KB Output is correct
43 Correct 6 ms 604 KB Output is correct
44 Correct 6 ms 600 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 6 ms 600 KB Output is correct
26 Correct 7 ms 860 KB Output is correct
27 Correct 6 ms 656 KB Output is correct
28 Correct 6 ms 860 KB Output is correct
29 Correct 6 ms 856 KB Output is correct
30 Correct 7 ms 908 KB Output is correct
31 Correct 6 ms 860 KB Output is correct
32 Correct 6 ms 604 KB Output is correct
33 Correct 6 ms 604 KB Output is correct
34 Correct 6 ms 600 KB Output is correct
35 Correct 6 ms 348 KB Output is correct
36 Correct 6 ms 348 KB Output is correct
37 Correct 20 ms 16496 KB Output is correct
38 Correct 12 ms 8540 KB Output is correct
39 Correct 6 ms 344 KB Output is correct
40 Correct 6 ms 348 KB Output is correct
41 Correct 14 ms 8760 KB Output is correct
42 Correct 13 ms 8540 KB Output is correct
43 Correct 6 ms 604 KB Output is correct
44 Correct 6 ms 600 KB Output is correct
45 Runtime error 25 ms 2972 KB Execution killed with signal 11
46 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 344 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 0 ms 348 KB Output is correct
21 Correct 1 ms 348 KB Output is correct
22 Correct 0 ms 348 KB Output is correct
23 Correct 0 ms 348 KB Output is correct
24 Correct 0 ms 348 KB Output is correct
25 Correct 6 ms 600 KB Output is correct
26 Correct 7 ms 860 KB Output is correct
27 Correct 6 ms 656 KB Output is correct
28 Correct 6 ms 860 KB Output is correct
29 Correct 6 ms 856 KB Output is correct
30 Correct 7 ms 908 KB Output is correct
31 Correct 6 ms 860 KB Output is correct
32 Correct 6 ms 604 KB Output is correct
33 Correct 6 ms 604 KB Output is correct
34 Correct 6 ms 600 KB Output is correct
35 Correct 6 ms 348 KB Output is correct
36 Correct 6 ms 348 KB Output is correct
37 Correct 20 ms 16496 KB Output is correct
38 Correct 12 ms 8540 KB Output is correct
39 Correct 6 ms 344 KB Output is correct
40 Correct 6 ms 348 KB Output is correct
41 Correct 14 ms 8760 KB Output is correct
42 Correct 13 ms 8540 KB Output is correct
43 Correct 6 ms 604 KB Output is correct
44 Correct 6 ms 600 KB Output is correct
45 Runtime error 25 ms 2972 KB Execution killed with signal 11
46 Halted 0 ms 0 KB -