• + 0 comments

    c++ style:

    void reorder(vector<int> &inp,int l,int r, int command) {
        vector<int> tmp(inp.begin()+l,inp.begin()+r);
        inp.erase(inp.begin()+l,inp.begin()+r);
        if(command==1){
            inp.insert(inp.begin(),tmp.begin(),tmp.end());
        }else if(command==2) {
            inp.insert(inp.end(),tmp.begin(),tmp.end());
        }
    }
    
    int main() {
        
        int N,M;
        // get N , M
        std::cin>>N>>M;
      vector<int> input(N);
      for(int i=0; i<N; ++i) {
          cin >> input[i];
      }
       
       while(M--){
           int r,l,c;
           cin>>c>>l>>r;
           reorder(input, l-1, r, c);
       }
        cout<<abs(input[input.size()-1]-input[0])<<endl;
        for(const auto &i: input) cout<<i<<" ";
        
       
        return 0;
    }