Submission #1198849

#TimeUsernameProblemLanguageResultExecution timeMemory
1198849ElayV13Abracadabra (CEOI22_abracadabra)C++20
10 / 100
754 ms8580 KiB
#include <bits/stdc++.h>
using namespace std;

vector < int > shuffle(vector < int > v)
{
        int sz = v.size();
        vector < int > f , s;
        for(int i = sz / 2 - 1;i >= 0;i--)
        {
                f.push_back(v[i]);
        }
        for(int i = v.size() - 1;i >= sz / 2;i--)
        {
                s.push_back(v[i]);
        }
        vector < int > res;
        while(res.size() < v.size())
        {
                if(!f.size())
                {
                        res.push_back(s[s.size() - 1]);
                        s.pop_back();
                }
                else if(!s.size())
                {
                        res.push_back(f[f.size() - 1]);
                        f.pop_back();
                }
                else
                {
                        if(f[f.size() - 1] > s[s.size() - 1])
                        {
                                res.push_back(s[s.size() - 1]);
                                s.pop_back();
                        }
                        else
                        {
                                res.push_back(f[f.size() - 1]);
                                f.pop_back();
                        }
                }
        }
        return res;
}

int res[1001][1001];

signed main()
{
      ios_base::sync_with_stdio(0);cin.tie(0);
      int n , q;
      cin >> n >> q;
      vector < int > a(n);
      for(int &i : a) cin >> i;
      for(int i = 0;i < n;i++) res[0][i] = a[i];
      for(int i = 1;i <= 1000;i++)
      {
              a = shuffle(a);
              for(int j = 0;j < n;j++) res[i][j] = a[j];
      }
      while(q--)
      {
             int t , idx;
             cin >> t >> idx;
             t = min(t , 1000);
             cout << res[t][idx - 1] << endl;
      }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...