输入有多组,每组数据有两行,每一行都代表一个集合,每一行有若干个正整数(0<d<=2147483647),并且每行的最后一个数字都是0,代表该行数据的结束,且末尾的0不计入集合中。最后以EOF结束输入。
한국어< 中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin
#include <iostream> #include <set> #include <algorithm> using namespace std; int main() { int n, d; n = 1; set < int > A; set < int > B; set < int > I; set <int > U; set < int > T; set < int > :: iterator iter; while( cin >> d ) { if( n == 1 && d > 0) A.insert(d); if( n == 2 && d > 0) B.insert(d); if( n == 2 && d == 0 ) { set_union( A.begin(), A.end(), B.begin(), B.end(), insert_iterator < set < int > > (U, U.begin())); set_intersection( A.begin(), A.end(), B.begin(), B.end(), insert_iterator < set < int > > (I, I.begin())); set_difference( U.begin(), U.end(), I.begin(), I.end(), insert_iterator < set < int > > (T, T.begin())); if( T.empty() ) cout << "YES" << endl; else cout << "NO" << endl; A.clear(); B.clear(); U.clear(); I.clear(); T.clear(); } if( d == 0 && n == 1) { n = 2; d = -1; } if( d == 0 && n == 2) { n = 1; d = -1; } } }