2 solutions

  • 1
    @ 2024-3-2 14:15:14
    #include<bits/stdc++.h>
    using namespace std;
    const int N=100010;
    int a[N];
    int main()
    {
        int n,k;
        scanf("%d%d",&n,&k);
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        while(k--)
        {
            int l=0,r=n-1;
            int x;
            scanf("%d",&x);
            while(l<r)
            {
                int mid=l+r>>1;
                if(a[mid]>=x) r=mid;
                else l=mid+1;
            }
            if(a[l]!=x)
            {
                printf("-1 -1\n");
                continue;
            }
            printf("%d ",l);
            l=0,r=n-1;
            while(l<r)
            {
                int mid=l+r+1>>1;
                if(a[mid]<=x) l=mid;
                else r=mid-1;
            }
            printf("%d\n",l);
        }
        return 0;
    }
    
    • -1
      @ 2025-3-15 14:39:09
      • 1

      Information

      ID
      141
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      77
      Accepted
      25
      Uploaded By