题解信息学奥赛一本通1110

· · 个人记录

理解题意

1110:查找特定的值

时间限制: 1000 ms 内存限制: 65536 KB 提交数: 79446 通过数: 39148 【题目描述】 在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置。

【输入】 第一行包含一个正整数n,表示序列中元素个数。1 <=n<= 10000。

第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过10000。

第三行包含一个整数x,为需要查找的特定值。x的绝对值不超过10000。

【输出】 若序列中存在x,输出x第一次出现的下标;否则输出-1。

【输入样例】

5

2 3 6 7 3

3

【输出样例】

2

code

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[10000+1],n,x;
    cin>>n;
    for(int i = 1;i<=n;i++){
        cin>>x;
        if(a[x]==0){
            a[x]=i;
        }
    }
    cin>>x;
    if(a[x]==0){
        printf("-1\n");
    }else{
        printf("%d\n",a[x]);
    }
    return 0;
}