Advertisement
a53

AfisMinime

a53
Dec 30th, 2016
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<algorithm>
  3. using namespace std;
  4. int r[100001][17],v[100001];
  5. int main()
  6. {
  7. FILE*fin,*fout;
  8. int n,m,i,j,a,b,rez,l;
  9. fin=fopen("afisminime.in","r");
  10. fout=fopen("afisminime.out","w");
  11. fscanf(fin,"%d%d",&n,&m);
  12. v[1]=0;
  13. for(i=2;i<=n;i++)
  14. v[i]=1+v[i/2];
  15. for(i=1;i<=n;i++)
  16. {
  17. fscanf(fin,"%d",&r[i][0]);
  18. for(j=1;(1<<j)<=i;j++)
  19. r[i][j]=min(r[i-(1<<(j-1))][j-1],r[i][j-1]);
  20. }
  21. for(i=1;i<=m;i++)
  22. {
  23. fscanf(fin,"%d%d",&a,&b);
  24. l=v[b-a+1];
  25. rez=min(r[a+(1<<l)-1][l],r[b][l]);
  26. fprintf(fout,"%d\n",rez);
  27. }
  28. fclose(fout);
  29. fclose(fin);
  30. return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement