Ural 1021 Sacrament of the sum

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 ;
}

你可能感兴趣的:(Ural 1021 Sacrament of the sum)