BestCoder Round #61 (div.2) 1001

问题描述
给n个数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An,从中选3个位置不同的数A,B和C,问是否有一种情况满足A-B=C.
输入描述
输入有多组数据,不超过1000组.
每组数据第一行包含一个整数n,随后一行n个整数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An.(3\leq n\leq 1003n100,0\leq {A}_{i}\leq 10000Ai1000)
输出描述
对于每组数据如果符合条件输出"YES",否则输出"NO".
输入样例
3
3 1 2
3
1 0 2
4
1 1 0 2
输出样例
YES
NO
YES
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e2+10;
int a[maxm];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        int ok=0;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                for(int k=0;k<n;k++)
                {
                    if(i!=j&&i!=k&&j!=k&&(a[i]-a[j]==a[k]||a[i]-a[k]==a[j]||a[j]-a[i]==a[k]||a[j]-a[k]==a[i]||a[k]-a[i]==a[j]||a[k]-a[j]==a[i]))
                    {
                        ok=1;
                        break;
                    }
                }
                if(ok)
                {
                    break;
                }
            }
            if(ok)
            {
                break;
            }
        }
        if(ok)
        {
            printf("YES\n");
        }
        else
        {
            printf("NO\n");
        }
    }
    return 0;
}


你可能感兴趣的:(BestCoder Round #61 (div.2) 1001)