[3330] 순서 표 응용 6: 순서 표 조회
1633 단어 데이터 구조 - 순서 표
Time Limit: 7ms Memory limit: 700K 의문 이 있 습 니까?여기 눌 러 주세요 ^ ^
제목 설명
순서 표 에는 n 개의 서로 다른 정수 (1 & lt; = n & gt; = 2000) 가 작은 순서 에서 큰 순서 로 저장 되 어 있 으 며, 정 수 를 임의로 입력 하여 순서 표 에 존재 하 는 지 여 부 를 판단 한다. 순서 표 에 이 정수 가 존재 한다 면 표 에 있 는 번 호 를 출력 하고, 그렇지 않 으 면 'No Found!' 를 출력 한다.
입력
첫 번 째 줄 은 정수 n 을 입력 하여 순서 표 의 요소 개 수 를 표시 합 니 다.
두 번 째 줄 은 n 개의 서로 다른 질서 있 는 정 수 를 순서대로 입력 하고 표 안의 요 소 를 대표 합 니 다.
세 번 째 줄 에 정수 t 를 입력 하면 조회 할 횟수 를 대표 합 니 다.
네 번 째 줄 에 t 개의 정 수 를 순서대로 입력 하면 매번 조회 할 수 있 는 수 치 를 나타 낸다.
출력
t 줄 을 출력 합 니 다. t 차 조회 결 과 를 대표 합 니 다. 이 줄 에서 이 요 소 를 출력 하 는 위 치 를 찾 으 면 이 줄 에서 No Found 를 출력 합 니 다!
예제 입력
10
1 22 33 55 63 70 74 79 80 87
4
55 10 2 87
예제 출력
4
No Found!
No Found!
10
,
#include
using namespace std; typedef struct { int *elem; int length; int listsize; }List; void creat(List &L,int n) { L.elem=new int[20001]; if(!L.elem) exit(0); for(int i=0;i >L.elem[i]; L.length=n; } int display(List &l,int n) { int m,mid,low,high; cin>>m; low=0; high=n-1; while(low<=high) { mid=(low+high)/2; if(m>l.elem[mid]) low=mid+1; else if(m >n; List p; creat(p,n); cin>>t; while(t--) { x=display(p,n); if(x==-1) cout<