描述 | |
---|---|
知识点 | 数组,函数,指针,位运算,结构体 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入说明 |
输出 | 输出整理后的结果 |
样例输入 | 2 3 4 5 5 7 |
样例输出 | 4 5 5 7 |
既然需要按编号升序排序,偷个懒,用map实现好了。
#include<iostream>
#include<map>
using namespace std;
int main()
{
map<int,int> ori_data,insert_data;
int m,n,num,value;
int numdif,value_dif,num_prev,value_prev,num_next,value_next;
cin>>m>>n;
for(int i=0;i<m;i++)
{
cin>>num>>value;
ori_data.insert(make_pair(num,value));
insert_data.insert(make_pair(num,value));
}
map<int,int>::iterator it=ori_data.begin();
for(int i=0;i<m-1;i++)
{
num_prev=it->first;
value_prev=it->second;
it++;
num_next=it->first;
value_next=it->second;
numdif=num_next-num_prev-1;
value_dif=(value_next-value_prev)/(num_next-num_prev);
for(int j=1;j<=numdif;j++)
{
num=num_prev+j;
value=value_prev+value_dif*j;
insert_data.insert(make_pair(num,value));
}
}
for(map<int,int>::iterator it=insert_data.begin();it!=insert_data.end();it++)
cout<<it->first<<" "<<it->second<<endl;
//system("pause");
return 0;
}