#include <bits/stdc++.h> using namespace std; int n; vector <int> czek (int a){ vector <int> miny; for (int i=0; i<n;i++){ if ((1<<i) & a){ miny.push_back(i); } } return miny; } int main(){ cin >> n; vector <pair<int,int> > m; vector <pair<int,int> > d; for (int i=0; i<n;i++){ int a,r; cin >> a >> r; m.push_back(make_pair(a,r)); } for (int i=0; i<n;i++){ for (int j=0; j<n;j++){ if(i!=j){ if (abs(m[i].first-m[j].first)<=m[i].second){ d.push_back(make_pair(i,j)); } } } } vector <vector <int> > mm; for (int i=0; i<(1<<n);i++){ mm.push_back(czek(i)); } int wynik=0; for (int o=0; o<d.size();o++){ int j=d[o].first; int k=d[o].second; for (int i=0; i<mm.size();i++){ bool czyj=0; bool czyk=0; for (int l=0; l<mm[i].size();l++){ if (mm[i][l]==j){ czyj=1; } if (mm[i][l]==k){ czyk=1; } } if (czyj==1 && czyk==0){ mm.erase(mm.begin()+i); i--; } } } cout <<(int)mm.size()<<endl; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <bits/stdc++.h> using namespace std; int n; vector <int> czek (int a){ vector <int> miny; for (int i=0; i<n;i++){ if ((1<<i) & a){ miny.push_back(i); } } return miny; } int main(){ cin >> n; vector <pair<int,int> > m; vector <pair<int,int> > d; for (int i=0; i<n;i++){ int a,r; cin >> a >> r; m.push_back(make_pair(a,r)); } for (int i=0; i<n;i++){ for (int j=0; j<n;j++){ if(i!=j){ if (abs(m[i].first-m[j].first)<=m[i].second){ d.push_back(make_pair(i,j)); } } } } vector <vector <int> > mm; for (int i=0; i<(1<<n);i++){ mm.push_back(czek(i)); } int wynik=0; for (int o=0; o<d.size();o++){ int j=d[o].first; int k=d[o].second; for (int i=0; i<mm.size();i++){ bool czyj=0; bool czyk=0; for (int l=0; l<mm[i].size();l++){ if (mm[i][l]==j){ czyj=1; } if (mm[i][l]==k){ czyk=1; } } if (czyj==1 && czyk==0){ mm.erase(mm.begin()+i); i--; } } } cout <<(int)mm.size()<<endl; } |