//N 为最多街道长度300 H最多居民数 50
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef vector<int>::iterator v_it;
typedef vector<vector<int> >::iterator vv_it;
int totalT(int IsPlant[],int l,int r)
{
int t=0;
for(int i=l;i<=r;i++)
{
t+=IsPlant[i];
}
return t;
}
void plant(vector<vector<int> >& BET,int IsPlant[],int h)
{
vv_it i;
int j,k;
int total=0;
for(i=BET.begin();i!=BET.end();i++)
{
for(j = *(i->begin()+2),k=*(i->begin()+1);j>0;j--,k--)
{
if(totalT(IsPlant,*(i->begin()),*(i->begin()+1))<*(i->begin()+2))
{
IsPlant[k]=1;
total++;
}
}
}
cout<<total<<endl;
}
void mycout(int IsPlant[],int n )
{
for(int i=0;i<n+1;i++)
{
if (IsPlant[i]==1)
{
cout<<i<<" ";
}
}
cout<<endl;
}
int main()
{
int n,h;
cout<<"区域的个数:"<<endl;
cin>>n;
cout<<"房子的数目:"<<endl;
cin>>h;
vector<vector<int> > BET;
vector<int> bet;
int IsPlant[20] ={0};
cout<<"行描述居民们的需要:B E T :"<<endl;
int B,E,T;
for(int i=0;i<h;i++)
{
cin>>B>>E>>T;
bet.push_back(B);
bet.push_back(E);
bet.push_back(T);
BET.push_back(bet);
bet.clear();
}
cout<<n<<endl;
cout<<h<<endl;
vector<vector<int> >::iterator i;
vector<int>::iterator j;
cout<<"排序前的结果:"<<endl;;
for(i = BET.begin(); i != BET.end(); i++)
{
for(j = i->begin(); j != i->end(); j++)
{
cout<<*j<<" ";
}
cout<<endl;
}
sort(BET.begin(),BET.end());
cout<<"排序后的结果:"<<endl;;
for(i = BET.begin(); i != BET.end(); i++)
{
for(j = i->begin(); j != i->end(); j++)
{
cout<<*j<<" ";
}
cout<<endl;
}
cout<<"种树数目:"<<endl;
plant(BET,IsPlant,h);
cout<<"种树位置:"<<endl;
mycout(IsPlant,n);
system("pause");
return 0;
}
种树问题
最新推荐文章于 2024-07-20 20:05:22 发布