Cod sursa(job #2729891)

Utilizator armigheGheorghe Liviu Armand armighe Data 25 martie 2021 15:49:58
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int st[250002],sol[300002],p[250002];
vector<int>a[250002];
vector<pair<int,int>>q[250002];
int main()
{
    int n,m,vf=0,i,x,y;
    f>>n>>m;
    for(i=1;i<=n;i++)
    {
        f>>x;
        a[x].push_back(i);
    }
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        q[x].push_back({y,i});
    }
    st[++vf]=0;
    while(vf>0)
    {
        x=st[vf];
        for(auto z:q[x])
            sol[z.second]=st[max(0,vf-z.first)];
        if(p[x]<(int)a[x].size())
            st[++vf]=a[x][p[x]++];
        else
            vf--;
    }
    for(i=1;i<=m;i++)
        g<<sol[i]<<'\n';
    return 0;
}