##Prime Cryptarithm##
2017.06.01
###题解###
先搜索出乘数和被乘数的所有情况,再检验所得的积是否满足条件即可。
###代码###
/*
ID: xhzdcyy1
PROB: barn1
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#define cin fin
#define cout fout
using namespace std;
ofstream fout ("barn1.out");
ifstream fin ("barn1.in");
bool arr[200]={false};
int inter[200];
bool cmp(int a,int b){
return a-b>0;
}
int main()
{
int m,s,c;
cin>>m>>s>>c;
int min=200,max=0;
for(int i=0;i<c;i++){
int tmp;
cin>>tmp;
if (tmp>max) max=tmp;
if (tmp<min) min=tmp;
arr[tmp]=true;
}
int tmp1=0,cc=0;
for(int i=min+1;i<=max;i++){
if(!arr[i]){
++tmp1;
}
else{
if(tmp1){
inter[cc++]=tmp1;
tmp1=0;
}
}
}
sort(inter,inter+cc,cmp);
int res=max-min+1;
for(int i=0;i<m-1;i++){
res-=inter[i];
}
cout<<res<<endl;
return 0;
}