64862023-12-04 22:10:10KaukazusBináris Sakkcpp17Hibás válasz 0/1002.099s8596 KiB
#include <bits/stdc++.h>
//#include <cmath>
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 || abs(a-c)==abs(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
1Elfogadva3ms1768 KiB
2Elfogadva3ms1928 KiB
subtask20/11
3Elfogadva3ms2140 KiB
4Elfogadva3ms2372 KiB
5Hibás válasz3ms2580 KiB
6Elfogadva3ms2804 KiB
7Elfogadva3ms3020 KiB
8Hibás válasz3ms3132 KiB
9Hibás válasz3ms3128 KiB
10Hibás válasz4ms3436 KiB
11Hibás válasz4ms3636 KiB
12Hibás válasz4ms3676 KiB
13Hibás válasz4ms3528 KiB
14Hibás válasz6ms3580 KiB
15Hibás válasz6ms3576 KiB
16Hibás válasz6ms3572 KiB
17Hibás válasz6ms3836 KiB
18Hibás válasz3ms3832 KiB
subtask30/19
19Időlimit túllépés2.099s5568 KiB
20Hibás válasz563ms5684 KiB
21Hibás válasz374ms5708 KiB
22Időlimit túllépés2.062s7332 KiB
23Hibás válasz1.358s7316 KiB
24Futási hiba145ms5248 KiB
25Időlimit túllépés2.055s7872 KiB
26Időlimit túllépés2.071s7684 KiB
27Időlimit túllépés2.075s7740 KiB
28Időlimit túllépés2.078s7916 KiB
29Időlimit túllépés2.062s8056 KiB
30Időlimit túllépés2.082s7820 KiB
31Időlimit túllépés2.073s7868 KiB
32Időlimit túllépés2.099s7760 KiB
subtask40/19
33Hibás válasz4ms4560 KiB
34Hibás válasz4ms4844 KiB
35Elfogadva3ms5048 KiB
36Hibás válasz3ms5036 KiB
37Hibás válasz3ms4940 KiB
38Hibás válasz3ms5000 KiB
39Hibás válasz4ms4924 KiB
40Hibás válasz4ms4924 KiB
41Hibás válasz4ms4928 KiB
42Hibás válasz4ms4864 KiB
43Hibás válasz6ms4872 KiB
44Hibás válasz6ms4924 KiB
45Hibás válasz6ms4908 KiB
46Hibás válasz6ms4916 KiB
47Hibás válasz4ms4864 KiB
subtask50/51
48Hibás válasz273ms5936 KiB
49Hibás válasz1.72s8204 KiB
50Időlimit túllépés2.019s7384 KiB
51Időlimit túllépés2.082s7896 KiB
52Időlimit túllépés2.072s6328 KiB
53Időlimit túllépés2.046s6688 KiB
54Hibás válasz1.598s8316 KiB
55Hibás válasz204ms6044 KiB
56Hibás válasz1.539s8260 KiB
57Időlimit túllépés2.059s8356 KiB
58Időlimit túllépés2.051s8428 KiB
59Időlimit túllépés2.085s8540 KiB
60Időlimit túllépés2.062s8416 KiB
61Időlimit túllépés2.061s8416 KiB
62Időlimit túllépés2.075s8412 KiB
63Időlimit túllépés2.062s8048 KiB
64Időlimit túllépés2.071s7908 KiB
65Időlimit túllépés2.062s7928 KiB
66Időlimit túllépés2.059s7808 KiB
67Időlimit túllépés2.049s8304 KiB
68Időlimit túllépés2.049s8596 KiB