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 田兵 阅读(137) 评论(0)  编辑 收藏 引用 所属分类: URAL


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


<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(2)

随笔分类(65)

随笔档案(65)

文章档案(2)

ACM

搜索

积分与排名

最新随笔

最新评论

阅读排行榜