the kid的苹果

http://192.168.102.138/JudgeOnline/problem.php?id=2527

知识点:1.nth_element(开头,需要按顺序的位置,结尾)

    (开头结尾同sort:结尾往后开一位)

#include <bits/stdc++.h>
using namespace std;
int m;
struct edge
{
    int x;
    int y;
    int val;
}e[10010];
int a[10010];
int cnt = 0; 
int query(int x1,int y1,int x2,int y2,int k)
{
    memset(a,0,sizeof(a));
    int tot = 0;
    for(int i = 1;i <= cnt;i++)
    {
        if(e[i].x >= x1 && e[i].x <= x2 && e[i].y >= y1 && e[i].y <= y2)
            a[++tot] = -e[i].val;
    }
    nth_element(a + 1,a + k,a + tot + 1);
    return -a[k];
}
int main()
{
    scanf("%d",&m);
    int x,x1,y1,x2,y2,k;
    while(m--)
    {
        scanf("%d",&x);
        if(x == 1)
        {
            cnt++;
            scanf("%d%d%d",&e[cnt].x,&e[cnt].y,&e[cnt].val);
        }
        else 
        {
            if(x == 2)
            {
                scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&k);
                printf("%d
",query(x1,y1,x2,y2,k));
            }
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xyj1/p/13968940.html