Cod sursa(job #856812)

Utilizator ioanapopaPopa Ioana ioanapopa Data 16 ianuarie 2013 23:07:59
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<cstdio>
#include<deque>
#include<cstdlib>
#define dim 500001


using namespace std;

int main()
{	freopen("secventa.in","r",stdin);
    freopen("secventa.out", "w",stdout);
    int v[dim],poz1,poz2;
	std::deque<int> mydeque1;
	std::deque<int> mydeque2;
	int n,k ;
    scanf("%d",&n);
    scanf("%d",&k);
	
    for(int i=0;i<n;i++)
        scanf("%d",&v[i]);
   
	int m=1;
	mydeque1[0]=v[0];
   for(int i=1;i<n;i++)
   {	
	   if(i>=k)
	   {
		   if(i==k) 
			  { mydeque2.push_back(mydeque1[0]);
			   poz1=m+1;
			   poz2=m+k;
			  }
		    else 
				if(mydeque2[0]<mydeque1[0])
				{
					mydeque2.push_front(mydeque1[0]);
					poz1=m+1;
					poz2=m+k;
				}
			   
			mydeque1.erase(mydeque1.begin(),mydeque1.begin()+1);
			
			m++;
	   }
	   if(mydeque1[0]>=v[i])
		   mydeque1.push_front(v[i]);
	   if(mydeque1[0]<v[i])
		   mydeque1.push_back(v[i]);
	   
   }			
	printf("%d %d %d", poz1,poz2,mydeque2[0]);
		
		//system("pause");
    return 0;
}