#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; } |
English