#include <iostream>
#include <vector>
using namespace std;
struct smth
{
smth( ) { cout << "no args" << endl; }
smth( int x) { cout << "with x = " << x << endl; }
} ;
void fill_pb( )
{
cout << "=== fill_pb ===" << endl;
vector < smth> v;
for ( int q= 0 ; q< 3 ; ++ q) v.push_back ( q) ;
cout << endl;
}
void fill_eb( )
{
cout << "=== fill_eb ===" << endl;
vector < smth> v;
for ( int q= 0 ; q< 3 ; ++ q) v.emplace_back ( q) ;
cout << endl;
}
void fill_p( vector < int > p)
{
cout << "=== fill_p ===" << endl;
vector < smth> v( p.size ( ) ) ;
for ( int q= 0 ; q< p.size ( ) ; ++ q) v[ p[ q] ] = p[ q] ;
cout << endl;
}
int main( )
{
fill_pb( ) ;
fill_eb( ) ;
fill_p( { 3 ,1 ,0 ,2 } ) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBzbXRoCnsKICBzbXRoKCkgeyBjb3V0IDw8ICJubyBhcmdzIiA8PCBlbmRsOyB9CiAgc210aChpbnQgeCkgeyBjb3V0IDw8ICJ3aXRoIHggPSAiIDw8IHggPDwgZW5kbDsgfQp9OwoKdm9pZCBmaWxsX3BiKCkKewogIGNvdXQgPDwgIj09PSBmaWxsX3BiID09PSIgPDwgZW5kbDsKCiAgdmVjdG9yIDxzbXRoPiB2OwogIGZvciAoaW50IHE9MDsgcTwzOyArK3EpIHYucHVzaF9iYWNrKHEpOwoKICBjb3V0IDw8IGVuZGw7Cn0KCnZvaWQgZmlsbF9lYigpCnsKICBjb3V0IDw8ICI9PT0gZmlsbF9lYiA9PT0iIDw8IGVuZGw7CgogIHZlY3RvciA8c210aD4gdjsKICBmb3IgKGludCBxPTA7IHE8MzsgKytxKSB2LmVtcGxhY2VfYmFjayhxKTsKCiAgY291dCA8PCBlbmRsOwp9Cgp2b2lkIGZpbGxfcCh2ZWN0b3IgPGludD4gcCkKewogIGNvdXQgPDwgIj09PSBmaWxsX3AgPT09IiA8PCBlbmRsOwoKICB2ZWN0b3IgPHNtdGg+IHYocC5zaXplKCkpOwogIGZvciAoaW50IHE9MDsgcTxwLnNpemUoKTsgKytxKSB2W3BbcV1dID0gcFtxXTsKCiAgY291dCA8PCBlbmRsOwp9CgppbnQgbWFpbigpCnsKICBmaWxsX3BiKCk7CiAgZmlsbF9lYigpOwogIGZpbGxfcCh7MywxLDAsMn0pOwoKICByZXR1cm4gMDsKfQ==