#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <limits>
struct Bag
{
int NumBalls;
int Balls[ 10 ] ;
Bag( ) : NumBalls( 0 ) { }
} ;
int main( )
{
int N;
std:: cout << "How many bags do you want? " ;
if ( ! ( ( std:: cin >> N) && ( N > 0 ) ) )
{
std:: cout << "Bad input!" << std:: endl ;
return 0 ;
}
std:: cin .ignore ( std:: numeric_limits < std:: streamsize > :: max ( ) , '\n ' ) ;
std:: vector < Bag> Bags( N) ;
for ( int i = 0 ; i < N; ++ i)
{
std:: cout << "Enter balls for bag " << i+ 1 << ": " ;
std:: string line;
if ( ! std:: getline ( std:: cin , line) )
break ;
std:: istringstream iss( line) ;
Bag & bag = Bags[ i] ;
int ball;
do
{
if ( ! ( iss >> ball) )
{
if ( ! iss.eof ( ) )
std:: cout << "Bad input!" << std:: endl ;
break ;
}
bag.Balls [ bag.NumBalls ] = ball;
bag.NumBalls ++ ;
}
while ( bag.NumBalls < 10 ) ;
}
std:: cout << std:: endl ;
for ( int i = 0 ; i < N; ++ i)
{
std:: cout << "Bag " << i+ 1 << " contains:" ;
Bag & bag = Bags[ i] ;
for ( int j = 0 ; j < bag.NumBalls ; ++ j)
std:: cout << " " << bag.Balls [ j] ;
std:: cout << "\n " ;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cz4KCnN0cnVjdCBCYWcKewogICAgaW50IE51bUJhbGxzOwogICAgaW50IEJhbGxzWzEwXTsKCiAgICBCYWcoKSA6IE51bUJhbGxzKDApIHt9Cn07CgppbnQgbWFpbigpCnsKICAgIGludCBOOwogICAgc3RkOjpjb3V0IDw8ICJIb3cgbWFueSBiYWdzIGRvIHlvdSB3YW50PyAiOwoKICAgIGlmICghKChzdGQ6OmNpbiA+PiBOKSAmJiAoTiA+IDApKSkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkJhZCBpbnB1dCEiIDw8IHN0ZDo6ZW5kbDsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHN0ZDo6Y2luLmlnbm9yZShzdGQ6Om51bWVyaWNfbGltaXRzPHN0ZDo6c3RyZWFtc2l6ZT46Om1heCgpLCAnXG4nKTsKICAgIAogICAgc3RkOjp2ZWN0b3I8QmFnPiBCYWdzKE4pOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiRW50ZXIgYmFsbHMgZm9yIGJhZyAiIDw8IGkrMSA8PCAiOiAiOwoKICAgICAgICBzdGQ6OnN0cmluZyBsaW5lOwogICAgICAgIGlmICghc3RkOjpnZXRsaW5lKHN0ZDo6Y2luLCBsaW5lKSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpc3MobGluZSk7CgogICAgICAgIEJhZyAmYmFnID0gQmFnc1tpXTsKICAgICAgICBpbnQgYmFsbDsKCiAgICAgICAgZG8KICAgICAgICB7CiAgICAgICAgICAgIGlmICghKGlzcyA+PiBiYWxsKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCFpc3MuZW9mKCkpCiAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJCYWQgaW5wdXQhIiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYmFnLkJhbGxzW2JhZy5OdW1CYWxsc10gPSBiYWxsOwogICAgICAgICAgICBiYWcuTnVtQmFsbHMrKzsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKGJhZy5OdW1CYWxscyA8IDEwKTsKICAgIH0KCiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkJhZyAiIDw8IGkrMSA8PCAiIGNvbnRhaW5zOiI7CgogICAgICAgIEJhZyAmYmFnID0gQmFnc1tpXTsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgYmFnLk51bUJhbGxzOyArK2opCiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiICIgPDwgYmFnLkJhbGxzW2pdOwoKICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==