This code is producing segmentation fault error in one test case ,please help
the question is circular array rotation from hackkerrank-https://www.hackerrank.com/challenges/circular-array-rotation/problem
vector<int> circularArrayRotation(vector<int> a, int k, vector<int> queries) {
       int i,temp;
       vector<int> ans,rotated;
      
       if(k>a.size())   //if rotation is more than array size then same as k=-size
       k=k-a.size();
       //rotating the array k times 
       //i.e last element in first pos and moving the rest at one pos forward
       //but rotaing in more optimised way
        if(k!=a.size()){
            for(i=a.size()-k;i<a.size();i++)
            rotated.push_back(a[i]);
            for(i=0;i<a.size()-k;i++)
            rotated.push_back(a[i]);
        }
        
        for(i=0;i<queries.size();i++)
        {   if(k!=a.size())                  //if rotation is same as array size the array is same
            ans.push_back(rotated[queries[i]]);
            else
            ans.push_back(a[queries[i]]);
        }
        return ans;
    }
