64762023-12-04 09:33:25KaukazusBináris Sakkcpp17Hibás válasz 0/1002.099s8668 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long int

ll komponensek;
vector<pair<ll,ll>> helyek;
vector<ll> szulo;
vector<ll> meret;


bool fgv(ll a, ll b, ll c, ll d){
	//cerr << a << " " << b << " " << c << " " << d << endl;
	if(a==c || b==d || a-c==b-d){
		return true;
	}
	if(c==b && a==d){
		return true;
	}
	return false;
}

ll hol_van(ll a){
	if(szulo[a]==a){
		return a;
	}
	return hol_van(szulo[a]);
}


int main() {

	ios::sync_with_stdio(0);
	cin.tie(0); 
	cout.tie(0);

	ll R, N, C;
	cin >> R >> C >> N;

	
	szulo.resize(N+1);
	meret.resize(N+1);

	komponensek=N;

	for(ll i=1;i<N+1;i++){
		szulo[i]=i;
		meret[i]=1;
	}
	for(ll i=1;i<N+1;i++){
		pair<ll,ll> val;
		cin >> val.first >> val.second;
		helyek.push_back(val);
		//cerr <<"************************************** " <<   endl;
		for(ll j=0;j<i-1;j++){
			
			/*for(int x=0;x<helyek.size();x++){
				cerr << helyek[x].first << " " << helyek[x].second << endl;

			}
			cerr << endl << endl;*/
			if(fgv(helyek[j].first,helyek[j].second,val.first,val.second)){
				//cerr << "sikerr" << endl;
				//unio
				ll a=hol_van(i+1),b=hol_van(i);
				
				if(meret[a]<meret[b]) swap(a,b);
				
				meret[a]+=meret[b];
				szulo[b]=a;
				//
				komponensek--;
			}
		}

	}
	//cerr << komponensek;
	ll szam=pow(10,9)+7, hahh=pow(2,komponensek);
	cout << hahh%szam;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1888 KiB
2Elfogadva3ms2080 KiB
subtask20/11
3Elfogadva2ms2172 KiB
4Elfogadva3ms2292 KiB
5Hibás válasz3ms2516 KiB
6Elfogadva3ms2732 KiB
7Elfogadva3ms2800 KiB
8Hibás válasz3ms2832 KiB
9Hibás válasz3ms2840 KiB
10Hibás válasz4ms3172 KiB
11Hibás válasz4ms3128 KiB
12Hibás válasz4ms3132 KiB
13Hibás válasz4ms3088 KiB
14Hibás válasz6ms3360 KiB
15Hibás válasz6ms3564 KiB
16Hibás válasz6ms3876 KiB
17Hibás válasz4ms4076 KiB
18Hibás válasz3ms4008 KiB
subtask30/19
19Időlimit túllépés2.099s5712 KiB
20Hibás válasz481ms5804 KiB
21Hibás válasz326ms5760 KiB
22Időlimit túllépés2.073s7656 KiB
23Hibás válasz1.159s7444 KiB
24Futási hiba128ms5292 KiB
25Időlimit túllépés2.055s7760 KiB
26Időlimit túllépés2.073s7736 KiB
27Időlimit túllépés2.082s7772 KiB
28Időlimit túllépés2.049s7972 KiB
29Időlimit túllépés2.071s8040 KiB
30Időlimit túllépés2.078s8016 KiB
31Időlimit túllépés2.069s8044 KiB
32Időlimit túllépés2.062s8000 KiB
subtask40/19
33Hibás válasz4ms4868 KiB
34Hibás válasz4ms4872 KiB
35Elfogadva3ms4720 KiB
36Hibás válasz3ms4832 KiB
37Hibás válasz3ms4848 KiB
38Hibás válasz3ms5108 KiB
39Hibás válasz4ms5088 KiB
40Hibás válasz4ms5176 KiB
41Hibás válasz4ms5032 KiB
42Hibás válasz4ms4984 KiB
43Hibás válasz6ms5044 KiB
44Hibás válasz6ms5160 KiB
45Hibás válasz6ms5168 KiB
46Hibás válasz4ms5088 KiB
47Hibás válasz4ms5084 KiB
subtask50/51
48Hibás válasz245ms6200 KiB
49Hibás válasz1.531s8484 KiB
50Időlimit túllépés2.075s7488 KiB
51Időlimit túllépés2.066s7940 KiB
52Időlimit túllépés2.071s6656 KiB
53Időlimit túllépés2.078s6728 KiB
54Hibás válasz1.422s8308 KiB
55Hibás válasz182ms6144 KiB
56Hibás válasz1.368s8336 KiB
57Időlimit túllépés2.022s8440 KiB
58Időlimit túllépés2.017s8440 KiB
59Időlimit túllépés2.062s8456 KiB
60Időlimit túllépés2.04s8388 KiB
61Időlimit túllépés2.065s8452 KiB
62Időlimit túllépés2.066s8568 KiB
63Időlimit túllépés2.069s8000 KiB
64Időlimit túllépés2.053s7880 KiB
65Időlimit túllépés2.073s8044 KiB
66Időlimit túllépés2.029s8488 KiB
67Időlimit túllépés2.071s8544 KiB
68Időlimit túllépés2.059s8668 KiB