#pragma once
#pragma execution_character_set("utf-8")
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void _heBing(vector<pair<int,int>> vecIn, vector<pair<int,int>> &vecOut)
{
vector<pair<int, int>>::iterator it;
while (!vecIn.empty())
{
it = vecIn.begin();
int x = (*it).first;
int y = (*it).second;
it = vecIn.erase(it);
while (it != vecIn.end())
{
int x1 = (*it).first;
int y1 = (*it).second;
if (y >= x1)
{
y = y1;
it = vecIn.erase(it);
}
else
{
//it++;
break;
}
}
pair<int, int> pInt(x, y);
vecOut.push_back(pInt);
}
}
void _sortVector(vector<pair<int,int>> &vec)
{
int Ntmp = vec.size();
for (int j = 0; j < vec.size(); j++)
{
vector<pair<int,int>>::iterator it2 = vec.begin();
Ntmp--;
for (int i = 0; i < Ntmp; i++)
{
if ((*it2).first >= (*(it2 + 1)).first)
{
pair<int,int> Itmp = *it2;
*it2 = *(it2 + 1);
*(it2 + 1) = Itmp;
}
it2++;
}
}
}
void _printVec( vector<pair<int,int>> &vec)
{
for (vector<pair<int, int>>::iterator it1 = vec.begin(); it1 != vec.end(); it1++)
{
if (it1 < vec.end() - 1)
cout << (*it1).first << "," << (*it1).second << ";";
else
cout << (*it1).first << "," << (*it1).second << endl;
}
}
bool cmp(const pair<int, int> &p1, const pair<int, int> &p2)
{
return p1.first < p2.first;
}
int main21()
{
vector<pair<int,int>> vecOutput;
vector<pair<int, int>> vecInput;
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
do
{
char c;
int tmp1, tmp2;
cin >> tmp1 >> c >> tmp2;
vecInput.push_back(make_pair(tmp1, tmp2));
} while (cin.get() == ';');
}
//_sortVector(vecInput);//自己写的排序代码,没有sort效率高可以用sort
//sort(vecInput.begin(),vecInput.end(),cmp);
sort(vecInput.begin(), vecInput.end(), [](pair<int, int> &p1, pair<int, int> &p2){return p1.first < p2.first; });
_heBing(vecInput, vecOutput);
_printVec(vecOutput);
system("pause");
return 0;
}
2018.8.18字节跳动合并句子
最新推荐文章于 2020-11-03 00:42:43 发布