Submission #268611

#TimeUsernameProblemLanguageResultExecution timeMemory
268611stefantagaQueue (CEOI06_queue)C++14
12 / 100
1094 ms1568 KiB
#include <bits/stdc++.h>

using namespace std;
map <int,int> m;
map <int,pair<int,int> > m1;
int nr,i,n,q;
struct wow
{
    int x,y;
}v[50005];
struct query
{
    int poz;char tip;
}query[50005];
int q1;
pair <int,int> valori[50005];
int pozitie (int x)
{
    int sol=0,i;
    if (m1.find(x)!=m1.end())
    {
        int pozitie=m1[x].first;
        for (i=m1[x].second+1;i<=q1;i++)
        {
            if (valori[i].first<=valori[i].second)
            {
                if (valori[i].first<=m1[x].first+sol&&m1[x].first+sol<=valori[i].second)
            {
                sol++;
            }
            }
            else
            {
                 if (valori[i].first>=m1[x].first+sol&&m1[x].first+sol>=valori[i].second)
            {
                sol--;
            }
            }
        }
        return m1[x].first+sol;
    }
    for (i=1;i<=q1;i++)
        {
            if (valori[i].first<=valori[i].second)
            {
                if (valori[i].first<=x+sol&&x+sol<=valori[i].second)
            {
                sol++;
            }
            }
            else
            {
                if (valori[i].first>=x+sol&&x+sol>=valori[i].second)
            {
                sol--;
            }
            }
        }
    return x+sol;
}
int pozitie1,pozitie2;
int main()
{
    ios_base :: sync_with_stdio(false);
    cin.tie(0);
    #ifdef HOME
    ifstream cin("queue.in");
    ofstream cout("queue.out");
    #endif // HOME
    cin>>n;
    for (i=1;i<=n;i++)
    {
        cin>>v[i].x>>v[i].y;
        pozitie1=pozitie(v[i].y);
        pozitie2=pozitie(v[i].x);
        if (pozitie1<=pozitie2)
        {
            valori[++q1]={pozitie1,pozitie2-1};
            m1[v[i].x]={pozitie1,i};
        }
        else
        {
            valori[++q1]={pozitie1-1,pozitie2};
            m1[v[i].x]={pozitie1-1,i};
        }
    }
    cin>>q;
    for (i=1;i<=q;i++)
    {
        cin>>query[i].tip>>query[i].poz;
        if (query[i].tip=='P')
        {
            cout<<pozitie(query[i].poz)<<'\n';
        }
        else
        {
            cout<<"-1"<<'\n';
        }
    }
    return 0;
}

Compilation message (stderr)

queue.cpp: In function 'int pozitie(int)':
queue.cpp:22:13: warning: unused variable 'pozitie' [-Wunused-variable]
   22 |         int pozitie=m1[x].first;
      |             ^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...