2 solutions

  • 3
    @ 2024-8-24 13:35:13
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int a[N]; 
    int main()
    {
    	int n,m;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	 } 
    	 cin>>m;
    	 for(int i=1;i<=m;i++)
    	 {
    	 	int x;
    	 	cin>>x;
    	 	int l=1,r=n;
    	 	while(l<r)
    	 	{
    	 		int mid=(l+r)/2;
    	 		if(a[mid]>=x)r=mid;
    	 		else l=mid+1;
    		 }
    		 if(a[l]!=x)cout<<-1<<" ";
    		 else cout<<l<<" ";
    	  } 
    	  return 0;
    }
    
    • -2
      @ 2024-7-8 13:46:01
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e9+10;
      int a[N]; 
      int main()
      {
      	string n,m,i;
      	cin.getline(n);
      	for(i=0;i<n;i++)
      	{
      		cin>>a[i];
      	}
      	scanf("%f",m);
      	while(m!=0)
      	{
      		int x;
      		cin>>x;
      		int l=n,r=m;
      		while(l!=r)
      		{
      			int mid=l+(r<<1);
      			if(a[m]<=x) r=mid;
      			else l=mid+1;
      		}
      		if(a[n]!=m) printf("%f",1);
      		else
      		{
      			printf("%d",l);
      		}
      	}
      	return 0;
      }
      
      • 1

      Information

      ID
      138
      Time
      1000ms
      Memory
      128MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      90
      Accepted
      27
      Uploaded By