Ural 1021 Sacrament of the sum

题目意思就是判断两堆数里面能不能从两堆里各找一个数使它们的和是10000
Accepted
0.062   1 241 KB

#include<iostream>
using namespace std;
int p1[100000]={0},p2[100000]={0};
int ne1[100000]={0},ne2[100000]={0};
int main()
{
    
int n1,n2,i,t;
    cin
>>n1;
    
for(i=0; i<n1; i++)
    {
     cin
>>t;
     
if(t>=0)p1[t]=1;
     
else ne1[-t]=1;
    }
    cin
>>n2;
    
for(i=0; i<n2; i++)
    {
        cin
>>t;
        
if(t>=0)p2[t]=1;
        
else ne2[-t]=1;  
    }
    
bool flag=0;
    
for(i=0; i<=100000; i++)
    {
      
if(p1[i])
          
if(i<=10000)
             { 
if(p2[10000-i]){flag=1;break;}}
          
else if(ne2[i-10000]){flag=1;break; }
    }
    
if(flag==0)
      
for(i=0; i<=100000; i++)
      {
      
if(p2[i])
          
if(i<=10000)
              { 
if(p1[10000-i]){flag=1;break;} }
          
else if(ne1[i-10000]){flag=1;break; }
      } 
      
if(flag)cout<<"YES"<<endl;
      
else cout<<"NO"<<endl;
    
   
// system("pause");
    return 0;
}

posted on 2010-06-14 12:11 田兵 阅读(125) 评论(0)  编辑 收藏 引用 所属分类: URAL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(2)

随笔分类(65)

随笔档案(65)

文章档案(2)

ACM

搜索

积分与排名

最新随笔

最新评论

阅读排行榜