各位高手帮我看看这个程序(在学校的网上评测系统做的题),我写的超时了
/*两个数的和Time Limit:1000MS Memory Limit:65536K
Total Submit:22 Accepted:7
Description
给你一组N个整数,你从中找出两个整数并满足这样的条件:它们的和等于SUM。如果存在这样的两个数,就输出YES,否则输出NO。
Input
用while(cin>>).第一行两个整数:N,SUM。
N表示这组整数的个数,SUM表示条件。当输入0 0(即两个0)时程序结束。
第二行N个整数,每个整数用一个空格隔开。(0<=N<=10000000,0<=SUM<=1000000).
Output
一行,表示是否存在这样的两个数。
Sample Input
4 8
1 3 6 4
Sample Output
NO*/
#include<iostream>
using namespace std;
int main(){
int n,sum,i,j,k;
while(cin>>n>>sum){
int a[n],b[n];
if(n==0&&sum==0)break;
for(i=0;i<n;i++)
cin>>a[i];
int c;
for(j=0;j<n;j++){
c=sum-a[i];
for(k=0;k<n;k++){
if(c==a[k]){
cout<<"YES";
break;}
}
if(c==a[k]) break;
}
if(c!=a[k])cout<<"NO";
}
return 0;
}