Aizu 2780 Best Matched Pair

来源:互联网 发布:知天下事打一生肖 编辑:程序博客网 时间:2024/05/21 09:05
/*此题是一个序列中任意两个数相乘,除了自己和自己以外得到的最大的数且该数字是类似于“1234”连续上升的*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <map>#include <set>using namespace std;int num[1010];int main(){    int n;    while(scanf("%d", &n) != EOF){        set <int > ss;        char s[1010];        for(int i = 0; i < n; i++){            scanf("%d", &num[i]);        }        int sum;        int cc = 0;        for(int i = 0; i < n-1; i++){            for(int j = i+1; j < n; j++){                sum = num[i]*num[j];                int cnt = 0;                sprintf(s, "%d", sum);                for(int l = 0; l < strlen(s)-1; l++)                {                    if(s[l+1] - s[l] == 1)                    cnt++;                }                if(cnt == strlen(s) - 1)                    ss.insert(sum);            }        }        int maxn = 0;        if(!ss.size()) {            cout << "-1" << endl;            continue;        }        for(set<int> :: iterator it = ss.begin(); it != ss.end(); it++){//这里是用了set爱找字典序排序的特点            maxn = max(maxn, *it);        }        cout << maxn << endl;    }}

0 0