Submission #880495

# Submission time Handle Problem Language Result Execution time Memory
880495 2023-11-29T14:26:25 Z alexdd Collider (IZhO11_collider) C++17
0 / 100
1 ms 604 KB
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int buc = 1000;
int n,m;
int cntv=1;
vector<char> v[1100];
pair<int,int> get_poz(int a)
{
    int cntp=0;
    for(int i=1;i<=cntv;i++)
    {
        if(cntp+(int)v[i].size()>=a)
        {
            return {i,a-cntp-1};
        }
        cntp += (int)v[i].size();
    }
    return {-1,-1};
}
signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m;
    char ch;
    for(int i=1;i<=n;i++)
    {
        cin>>ch;
        if(i%buc==0)
            cntv++;
        v[cntv].push_back(ch);
    }
    int a,b;
    while(m--)
    {
        cin>>ch;
        if(ch=='q')
        {
            cin>>a;
            pair<int,int> unde = get_poz(a);
            cout<<v[unde.first][unde.second]<<"\n";
        }
        else
        {
            cin>>a>>b;
            if(a==b)
                continue;
            pair<int,int> undea = get_poz(a);
            pair<int,int> undeb = get_poz(b);
            if(undea.first!=undeb.first || undea.second < undeb.second)
            {
                int cop = v[undea.first][undea.second];
                v[undea.first].erase(v[undea.first].begin()+undea.second-1);
                v[undeb.first].insert(v[undeb.first].begin()+undeb.second, cop);
            }
            else
            {
                int cop = v[undea.first][undea.second];
                v[undeb.first].insert(v[undeb.first].begin()+undeb.second-1, cop);
                v[undea.first].erase(v[undea.first].begin()+undea.second);
            }
        }
    }
    return 0;
}
/**
xzxyyzxxzxyyzyx
xzxyyzxxzxyyzyx
123456789
*/
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 604 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -