跳到主要内容

题解:P9412 「NnOI R1-T1」购物

· 阅读需 1 分钟
lailai
Blogger

原题链接

解题思路

分类讨论:

  • 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];
}
if(n==1)
{
cout<<"-1"<<'\n';
}
else if(n==2&&a[2]==2)
{
cout<<"-1"<<'\n';
}
else if(n>2&&a[2]==2)
{
cout<<a[3]<<'\n';
}
else
{
cout<<a[2]<<'\n';
}
return 0;
}