跳到主要内容

P9412 「NnOI R1-T1」购物

· 阅读需 1 分钟
lailai
学生 & 开发者

解题思路

分类讨论:

  • 如果 n=1n=1,显然无解。
  • 如果 n=2n=2,因为题目保证 a1=1a_1=1,如果 a2=2a_2=2,支付 11 元和 22 元都需要 11 枚硬币,所以无解。
  • 如果 n>2n>2,如果 a2=2a_2=2 ,类似第二种情况,答案不能为 22,所以答案最小为 m=a3m=a_3
  • 否则,a2a_2 一定大于 22,所以答案最小为 m=a2m=a_2

参考代码

#include <bits/stdc++.h>
using namespace std;

const int N=15;
int a[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
cout<<(n==1||(n==2&&a[2]==2)?-1:n>2&&a[2]==2?a[3]:a[2])<<'\n';
return 0;
}