HDU 5522 Numbers

来源:互联网 发布:电锯惊魂影评知乎 编辑:程序博客网 时间:2024/05/22 01:31

Numbers

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/262144 K (Java/Others)
Total Submission(s): 924    Accepted Submission(s): 517


Problem Description
There are n numbers A1,A2....An,your task is to check whether there exists there different positive integers i, j, k (1i,j,kn) such that AiAj=Ak
 

Input
There are multiple test cases, no more than 1000 cases.
First line of each case contains a single integer n.(3n100).
Next line contains n integers A1,A2....An.(0Ai1000)
 

Output
For each case output "YES" in a single line if you find such i, j, k, otherwise output "NO".
 

Sample Input
33 1 231 0 241 1 0 2
 

Sample Output
YESNOYES
 

Source
BestCoder Round #61 (div.2)
 



BestCoder上的一道水题,碰巧看见了。

不多说,没优化,但能过。O(n^3) 暴力


#include <stdio.h>#include <algorithm>using namespace std;const int MAXN=105;int a[MAXN];int main(){        int n;        while(scanf("%d",&n)>0)        {                for(int i=0;i<n;i++)                        scanf("%d",&a[i]);                sort(a,a+n);                int isOk=0;                for(int i=0;i<n;i++)                        for(int j=i+1;j<n;j++)                                for(int k=j+1;k<n;k++)                                        if((a[i]+a[j])==a[k])                                        {                                                isOk=1;                                                break;                                        }                if(isOk)                        printf("YES\n");                else                        printf("NO\n");        }        return 0;}




0 0