牛客寒假基础集训营 | Day1 D-hanayo和米饭

D-hanayo和米饭

题目描述
hanayo很喜欢吃米饭。
有一天,她拿出了 n n n nnn 个碗,第一个碗装了 111 111 粒米饭,第二个碗装了 222 222 粒米饭,以此类推,第 n n n nnn 个碗装了 n n n nnn 粒米饭。
然而,爱搞恶作剧的rin把所有的碗的顺序打乱,并拿走了一个碗。hanayo想知道,rin拿走的碗里有多少粒米饭?
输入描述:
第一行输入一个正整数 n n n nnn 。代表原始的总碗数。
第二行输入 n n n nnn 个正整数 a i a i a i aia_iai​ ,代表目前每碗里米饭数量。
保证输入合法。
2 n 100000 1 a i n 2 n 100000 1 a i n 2 n 100000 1 a i n 2≤n≤100000,1≤ai≤n2 \le n \le 100000,1 \le a_i \le n2≤n≤100000,1≤ai​≤n
输出描述:
输出一个正整数,代表rin拿走的碗里米饭数量。

解题思路:
用数组标记,再遍历一遍数未被标记的输出下标。

示例
5
2 5 1 3

4

题解如下

#include<iostream>
using namespace std;
const int mode = 1e9 + 7;
const int Len = 100005;
int barrel[Len];

int main()
{
    //freopen("T.txt","r",stdin);
    int n;
    scanf("%d",&n);
    int tem;
    for(int i = 0; i < n - 1; i ++)
    {
        scanf("%d", &tem);
        barrel[tem] ++;
    }
    int ans;
    for(int i = 1; i <= n; i ++)
    {
        if(! barrel[i])
        {
            ans = i;
            break;
        }
    }
    printf("%d",ans);

    return 0;
}

发布了119 篇原创文章 · 获赞 186 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34261446/article/details/104216896