詹毅


私信TA

用户名:dotcpp0614404

访问量:375

签 名:

等  级
排  名 45328
经  验 325
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 广州软件学院
专  业

  自我简介:

解题思路:
方法一:用两个vector容器,第一个存放对应日期的上课时间,再将第一个的上课时间大于8的元素存放到第二个vector容器中,对第二个容器进行升序排序操作,最后遍历第二个容器将容器出现的第一个和最后一个元素的上课时间相等的元素的对应日期并输出,若没有则输出0

方法二:使用结构体数组对上课时间进行排序,对结构体数组进行排序然后遍历结构体数组找出出现的第一个和最后一个元素的上课时间相等的元素的对应日期并输出,若没有则输出0
参考代码:

方法一:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int x,y;
    vector<pair<int,int>> b;
    vector<pair<int,int>> c;
    for(int i=1;i<=7;i++)
    {
        cin>>x>>y;
        pair<int,int> a(x+y,i);
        b.push_back(a);
    }
    for(vector<pair<int,int>>::iterator it=b.begin();it!=b.end();++it)
    {
        if(it->first>8)
            c.push_back(*it);
    }
    sort(c.begin(),c.end());
        for(vector<pair<int,int>>::iterator it=c.begin();it!=c.end();++it)
        {
            if(it->first==(c.end()-1)->first)
            {
                cout<<it->second<<endl;
                return 0;
            }
        }
    cout<<0<<endl;
    return 0;
}

方法二:

#include <iostream>
#include <algorithm>
using namespace std;
struct Date{
	int sum;
	int day;
};
bool cmp(Date x,Date y)
{
	if(x.sum==y.sum)
		return x.day<y.day;
	else
		return x.sum<y.sum; 
}
int main()
{
	int x,y;
	Date a[7];
	for(int i=0;i<7;i++)
	{
		cin>>x>>y;
		a[i].sum=x+y;
		a[i].day=i+1;
	}
	sort(a,a+7,cmp);
	for(int i=0;i<7;i++)
	{
		if(a[i].sum>8&&a[i].sum==a[6].sum)
		{
			cout<<a[i].day<<endl;
			return 0;
		}
	 }
	 cout<<0<<endl;
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »