Pagini recente » Cod sursa (job #63257) | Cod sursa (job #2366384) | Cod sursa (job #2149316) | Cod sursa (job #3160075) | Cod sursa (job #3167827)
#include <iostream>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
const int NMAX = 1e6 + 5;
struct limits
{
int left, right, val;
};
limits limit [ NMAX ];
int main ( int argc, char *argv[] )
{
( void )! freopen ( "disjoint.in" , "r", stdin );
( void )! freopen ( "disjoint.out" , "w", stdout );
std::ios_base::sync_with_stdio ( false );
std::cin.tie ( NULL );
int n, m; std::cin >> n >> m;
for ( int i = 1; i <= n; ++ i )
limit [ i ].left = i, limit [ i ].right = i, limit [ i ].val = i;
int cod, x, y;
while ( m -- )
{
std::cin >> cod >> x >> y ;
if ( cod == 1 )
{
if ( x > y ) std::swap( x, y );
limit [ x ].right = limit [ y ].right, limit [ y ].left = limit [ x ].left;
}
else if ( cod == 2 )
{
if ( x > y ) std::swap( x, y );
if ( limit [ x ].left <= limit [ y ].left && limit [ x ].right >= limit [ y ].right )
std::cout << "DA";
else std::cout << "NU";
std::cout << '\n';
}
}
return 0;
}