Cod sursa(job #547281)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 6 martie 2011 10:37:15
Problema Range minimum query Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream.h>
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[100000001],n,m,x,y,v[100001];
inline int Min(int a,int b)
{ if(a<b) return a;
  return b;
}

int main()
{ int i,j,k,col;
  f>>n>>m;
  for(i=1;i<=n;i++) f>>v[i];
  i=0;
  for(k=n;k>=1;k--)
  { a[++i]=v[n+1-k]; col=n-k+1;
    for(j=1;j<=k-1;j++){ col++;
		                 i++;
	                     a[i]=Min(a[i-1],v[col]);
	}
	
	//  for(j=i+1;j<=n;j++) a[i][j]=Min(a[i][j-1],a[j][j]);
  }
  for(i=1;i<=m;i++)
	  { f>>x>>y;
	    g<<a[(2*n-x+2)*(x-1)/2+y-x+1]<<'\n';
	  }
  for(i=1;i<=n*(n+1)/2;i++) g<<a[i]<<' ';
  g<<'\n';
  f.close(); g.close();
  return 0;
}