Deque-STL

  • + 0 comments

    I don't understand why my code is not getting a correct answer

    As far as I'm aware, even with some custom inputs based on the test cases: I'm getting the corect answer. However, for some reason I am not getting correct test cases.

    #include <iostream>
    #include <deque> 
    using namespace std;
    
    void printKMax(int arr[], int n, int k){
        deque<int> indexes;
        --k;
        int j = 0;
        int maxNumInd = 0;
        int prevMaxNumI = 0;
        
        for(; k < n; ++k){
            for(; j <= k; ++j){
                indexes.push_back(j);
                if(prevMaxNumI == -1 || arr[prevMaxNumI] < arr[j]){
                    if(arr[maxNumInd] < arr[j]){
                        prevMaxNumI = maxNumInd;
                        maxNumInd = j;
                    }
                    else {
                        prevMaxNumI = j;
                    }
                }
            }
            cout << arr[maxNumInd] << " ";
            
            if(maxNumInd == indexes.front()){
                maxNumInd = prevMaxNumI;
            }
            if(prevMaxNumI == indexes.front()){
                prevMaxNumI = -1;
            }
            indexes.pop_front();
        }
        cout << endl;
    }
    
    int main(){
      
    	int t;
    	cin >> t;
    	while(t>0) {
    		int n,k;
        	cin >> n >> k;
        	int i;
        	int arr[n];
        	for(i=0;i<n;i++)
          		cin >> arr[i];
        	printKMax(arr, n, k);
        	t--;
      	}
      	return 0;
    }