HDU 1034
作者:互联网
##利用vector<>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> student;//存储每个学生的糖果数
vector<int> judge;//因为student不能打乱顺序,所以用judge进行排序,当第一个与最后一个相等的时候,就是完成的时候
vector<int>::iterator ib,ie;//迭代器
int candy,wish,size,temp[2]={0};//temp[2] 存储相邻学生在没有接受别人糖果之前,自己将要给别人的糖果
cin>>size;
while(size!=0){
wish=0;//存储吹口哨的次数
for(int i=0;i<size;i++){
cin>>candy;
student.push_back(candy);
}//读入数据
for(int i=0;i<size;++i){
if(i==0){//先将第一个改变,且存下他要给别人的糖果
temp[0]=student[i]/2;
student[i]=temp[0]+student[size-1]/2;
if(student[i]%2)
student[i]++;
judge.push_back(student[i]);
}
if(i+1<size){
temp[1]=temp[0];//temp[1] 存储上一个人糖果没变的时候,应该给别人的糖果
temp[0]=student[i+1]/2;//存自己应该给别人的糖果
student[i+1]=temp[0]+temp[1];
if(student[i+1]%2)
student[i+1]++;
judge.push_back(student[i+1]);
}
if(i==size-1){
wish++;
sort(judge.begin(),judge.end());//排序判断
ib=judge.begin();ie=judge.end()-1;
if(*ib!=*ie){
i=-1;
judge.clear();
}
}
}
cout<<wish<<" "<<student[0]<<endl;
judge.clear();
student.clear();
cin>>size;
}
return 0;
}
标签:HDU,int,candy,vector,student,include,1034,size 来源: https://blog.csdn.net/weixin_44799092/article/details/94041934