Pagini recente » Cod sursa (job #2604618) | Cod sursa (job #2514282) | Cod sursa (job #1687338) | Cod sursa (job #2686338) | Cod sursa (job #2310111)
#include <fstream>
#include <vector>
#include <queue>
using namespace std ;
ifstream f ( "euler.in" ) ;
ofstream g ( "euler.out" ) ;
const int NR = 262145 ;
int n , cnt ;
vector < bool > viz ( NR , false ) ;
vector < bool > close ( NR , false ) ;
vector < int > father ( NR , 0 ) ;
int main ()
{
f >> n ;
int x , y , i , frst ;
f >> x ;
frst = x ;
father [ frst ] = 0 ;
viz [ x ] = true ;
while ( f >> y )
{
if ( x == y ) return g << "NU" , 0 ;
if ( close [ y ] ) { g << "NU" ; return 0 ; }
if ( !viz [ y ] ) viz [ y ] = true , father [ y ] = x ;
else if ( father [ x ] == y ) close [ x ] = true ;
x = y ;
}
if ( x == frst )
{
close [ x ] = true ;
for ( i = 1 ; i <= n ; ++ i ) if ( !close [ i ] ) { g << "NU" ; return 0 ; }
g << "DA\n" ;
for ( i = 1 ; i <= n ; ++ i ) g << father [ i ] << " " ;
return 0 ;
}
g << "NU" ;
return 0 ;
}