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

D-hanayo和米饭

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值