visionary's blog

By visionary, 12 years ago, In Russian

Здравствуйте, помогите, пожалуйста, с задачей А(wrong answer 7 тест). Подскажите в чем моя ошибка. Спасибо.

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <math.h>
#define PI 3.14159265
#define eps 1e-18
using namespace std;
vector <int> a;
int k=1;
int q(int l,int r)
{
    if(l>r)return 1000000000;
    if(l==r)return a[l];
    int mini=1000000000;
    if(l<r)
    {
        if((l)%2!=0){mini=min(mini,a[l]);l++;}
        if((r)%2==0){mini=min(mini,a[r]);r--;};
        if(l<r)mini=min(mini,q(l/2,r/2));
    }
    return mini;
}
int main()
{
    freopen("stupid_rmq.in","r",stdin);
    freopen("stupid_rmq.out","w",stdout);
    int i,j,l,m,mini,n,p,r;
    cin>>n;
    while(k<n)k*=2;
    a.resize(4*n+1);
    a.assign(sizeof(a),1000000000);
    for(i=k;i<k+n;i++)cin>>a[i];

    for(i=k+n-1;i>=1;i--)
        a[i/2]=min(a[i/2],a[i]);

    cin>>m;
    for(i=1;i<=m;i++)
    {
        cin>>l>>r;
        if(l>r)swap(l,r);
        cout<<q(l+k-1,r+k-1)<<endl;
    }
    return 0;
}

UPD: Вопрос снят. Спасибо всем.

  • Vote: I like it
  • +6
  • Vote: I do not like it