思想很巧妙,
#include <iostream>
#include <algorithm>
#include <numeric>
#include <string>
#include <array>
#include <vector>
#include <functional>
#include <hash_set>
#include <ctime>
using namespace std;
struct node{
int num,data;
bool operator < (const node &p) const
{
return data < p.data;
}
};
node p[100001];
int main()
{
int n=100;
int i,j,a,b,c;
for(i=1;i<=n;i++)
{
p[i].data =n-i+1;
p[i].num = i;
}
sort(p+1,p+1+n); //调用库函数sort完成排序,复杂度n*logn
a=2;
b=10;
c=5;
for(i=1;i<=n;i++) //扫描一遍,复杂度n
{
if(p[i].num>=a && p[i].num<=b)
c--;
if(c == 0)
break;
}
printf("%d\n",p[i].data);
return 0;
}