답안 #895303

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
895303 2023-12-29T18:24:01 Z presko 입자 가속기 (IZhO11_collider) C++14
0 / 100
1 ms 348 KB
#include<iostream>
#include<bits/stdc++.h>
#define MAXN 1000010
using namespace std;
int ind[MAXN];
vector<pair<int,int>> order;
string s;
char getans(int pos)
{
    //int ans=pos;
    for(int i=0;i<(int)order.size();i++)
    {
        int l=order[i].first;
        int r=order[i].second;
        if(l<=pos && pos<=r)
        {
            order[i]={0,0};//could use -erase-
            /*if(r-l+1>1)
            {
                order.push_back({l,max(pos-1,l)});
                order.push_back({min(pos+1,r),r});
            }
            ans++;*/
            for(int j=l;j<=r;j++)
            {
                ind[j-1]=ind[j];
            }
            ind[r]=l-1;
        }
        else if(r<=pos && pos<=l)
        {
            order[i]={0,0};
            for(int j=l;j>=r;j--)
            {
                ind[j+1]=ind[j];
            }
            ind[r]=l+1;
        }
    }
    return s[ind[pos]-1];
}
int main()
{
    int n,q;
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>q;
    cin>>s;
    for(int i=0;i<(int)s.size();i++)
    {
        ind[i+1]=i+1;
    }//could be skipped
    for(int i=0;i<q;i++)
    {
        char t;
        cin>>t;
        if(t=='a')
        {
            int ql,qr;
            cin>>ql>>qr;
            if(ql+1<=qr)order.push_back({ql+1,qr});
            else if(qr<=ql-1)order.push_back({ql-1,qr});
        }
        else
        {
            int pos;
            cin>>pos;
            cout<<getans(pos)<<"\n";
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -