#6 WA 求调
查看原帖
#6 WA 求调
1202669
Gary0925楼主2024/8/14 12:21
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
long int n = 1, q, in, op;
struct lb
{
    long int le = 0, ri = 10005, num = 1e10;
} s[10006];
long int ip(long int x)
{
    long int i, j;
    for (j = 0, i = s[0].ri; s[i].num < x; i = s[i].ri, j++) {}
    return j;
}
long int po(long int x)
{
    long int ans = s[0].ri;
    for (long int i = 1; i < x; i++)
    {
        ans = s[ans].ri;
    }
    return s[ans].num;
}
long int la(long int x)
{
    long int i;
    for (i = 1; s[i].num < x; i = s[i].ri) {}
    if (s[i].le == 0) return -2147483647;
    return s[s[i].le].num;
}
long int ne(long int x)
{
    long int i;
    for (i = 1; s[i].num <= x; i = s[i].ri) {}
    if (i == 10005) return 2147483647;
    return s[i].num;
}
void ib(long int m, long int a)
{
    long int i;
    for (i = s[0].ri; s[i].num < m; i = s[i].ri) {}
    i = s[i].le;
    s[n].num = m;
    s[s[i].ri].le = n;
    s[n].ri = s[i].ri;
    s[i].ri = n, s[n++].le = i;
}
void gib(long int x)
{
    ib(x, ip(x));
}
int main()
{
    cin >> q;
    for (long int i = 0; i < q; i++)
    {
        cin >> op >> in;
        switch (op)
        {
        case 1:
            cout << ip(in) + 1 << endl;
            break;
        case 2:
            cout << po(in) << endl;
            break;
        case 3:
            cout << la(in) << endl;
            break;
        case 4:
            cout << ne(in) << endl;
            break;
        case 5:
            gib(in);
            break;
        }
    }
    return 0;
}
2024/8/14 12:21
加载中...