We don't wanna work!

We don't wanna work!

[JAG Asia 2016]

两个set,一个代表工作的,一个代表不工作的

其实是一个很简单的模拟,但是我竟然排序之前标号。。。。

检查代码的时候要从头开始检查。。

#include 
 
using namespace std;
const int maxn = 1e5+7;
struct node
{
    char s[25];
    int ti,fen;
    bool operator<(const node&r)const
    {
        if(fen==r.fen)
        {
            return ti>r.ti;
        }
        return fen>r.fen;
    }
} s[maxn],tmp;
setst,stt;
set::iterator it;
mapmp;
char str[25];
char op[5];
int p;
void solve()
{
    if(st.size()>p)
    {
        it=st.end();
        --it;
        tmp=*it;
        cout<>n;
    int cnt=0,tag=0,k;
    p=n*0.2;
    for(int i=1; i<=n; ++i)
    {
        cin>>s[i].s>>k;
        s[i].fen=k;
        s[i].ti=i;
    }
    sort(s+1,s+1+n);
    for(int i=1; i<=n; ++i)
    {
        mp[s[i].s]=++cnt;
        tag++;
        if(i<=p)
        {
            st.insert(s[i]);
        }
        else
        {
            stt.insert(s[i]);
        }
    }
    int m;
    cin>>m;
    int id;
    while(m--)
    {
        cin>>op;
        tag++;
        if(op[0]=='+')
        {
            n++;
            p=n*0.2;
            cin>> str>>k;
            if(mp.count(str))
            {
                id=mp[str];
                s[id].ti=tag;
                s[id].fen=k;
            }
            else
            {
                mp[str]=++cnt;
                s[cnt].fen=k;
                s[cnt].ti=tag;
                strcpy(s[cnt].s,str);
                id=cnt;
            }
            if(st.empty())
            {
                if(p>0&&k>=(*stt.begin()).fen)
                {
                    st.insert(s[id]);
                    cout<=(*it).fen||(st.size()=(*stt.begin()).fen))
                {
                    st.insert(s[id]);
                    cout<>str;
            id=mp[str];
            if(st.find(s[id])!=st.end())
            {
                st.erase(s[id]);
            }
            else
            {
                stt.erase(s[id]);
            }
            solve();
        }
    }
    return 0;
}

你可能感兴趣的:(We don't wanna work!)