물 문제의 Codeforces 939A 문제

주제 링크 : http://codeforces.com/problemset/problem/939/A

A. 사랑의 트라이앵글
테스트 당 시간 제한
1 초
시험 당 메모리 제한
256메가바이트
입력
표준 입력
산출
표준 출력

당신이 알 수있는 것처럼 어떤 남성 비행기 나 여자 비행기 없습니다. 그러나, 지구에서 각 비행기는 다른 비행기를 좋아한다. 거기  N  까지 번호 지구 평면  에 1  N은 한 번호 비행기   번호로 평면을 추천  f를 I 여기서,  1 ≤  f를 I  ≤  N  및  f를 I  ≠  I .

우리는 비행기있는 상황 삼각 전화  A는  평면 좋아하는  B는 , 평면  B는  평면을 좋아하는  C를  하고 평면  C가  평면 좋아  . 지구에 어떤 삼각 관계가 있는지 알아보십시오.

입력

첫 번째 라인은 하나의 정수를 포함  N  ( 2 ≤  N  면의 수 - ≤ 5000).

두 번째 행은 포함  N  정수  F (1),  F (2), ...,  F , N  ( 1 ≤  F I  ≤  Nf를 I  ≠  I 의미)  I 번째 평면 추천은  f를 번째.

산출

출력« 예»지구에서 비행기로 구성된 사랑의 삼각이있는 경우. 그렇지 않으면, 출력« NO».

당신은 출력 소문자 나 대문자로 모든 문자를 할 수 있습니다.

입력
5 
2 3 4 5 1
산출
입력
5 
5 5 5 5 1
산출
아니
노트

첫번째 예 평면에서  2 평면 추천  평면 4,  4면 추천  평면 1  1 평면 추천  2 및 그 삼각이다.

두 번째 예에서는 어떤 삼각 관계가 없습니다.

아이디어 : 주제 제 1의 효과가 2 제 3 호 제 1 호 제 3 호처럼, 어떻게 그것을 표현하는, 같은 호, 제 2 호와 같다? 첨자 배열을 표현하는, 예를 들어, [1] 제 2 마찬가지로 A [2] = 3을 나타내는 제 같이 = 2, 2 호 나타내는 제 3 같이 [3] = 1, 번호 3과 같은 대표 1. 이제 문제는 세 사이의 관계를 표현하는 방법이다. AC 코드를 참조하십시오 :

#INCLUDE <iostream>
 은 USING  스페이스 STD;
 INT N-, A [ 5001 ]; 

INT 의 main () 
{ 
    while 회 (CIN >> N-) 
    { 
        INT 플래그 =에서는 0 ] // 설정된 플래그 
         ( INT I = 1. ; I <= N-; I ++ ) 
            CIN >> A [I]
          ( INT I = 1. ; I <= N-; I ++ )
             IF (a [A [A [I]] == I) // 긴 조건으로 즉시 루프에서 즉시 종료 
                깃발 = 1; 
        경우 (플래그 == 1 ) 
            COUT << " YES " << ENDL;
        다른 
            COUT << " NO " << ENDL; 
    } 
    반환  0 ; 
}

A [1] = 2, A [2] = 3, 조건, 우리는 분석이 예를 들자면 삼각 대회의 그룹 인 [3] = 1. A [1] = 2 설명 2 번 같은 1 번, 우리는 바로 그렇게, 우리는 2 번처럼의 [1] = 2 (1 번 좋아 2 번) 2 위를 넣어 누구인지 알고 싶어 제 2 누가 결정 어레이 (A) 내로, 즉, [A [. 1], A [1] = 2와 같은 [A [1]은 동등한 동일한 같은 번호 2로 표시되는 [2] 리튬, A [2] 같은? 다음은 [A가 [1] 어레이 (A) 내로 인 3을 나타내는 방법 = 3에있어서, [A [A [1] (3 번처럼이라고 누가는), 그들은 3 1 위를할지 여부를 결정하고, 만약 그렇다면, 사랑 삼각형의 세 가지 조건, 그렇지 않으면 만족하지를 충족하기 위해 판사를 계속합니다. 잘 이해에서 어렵지 않다 후 이해합니다.

추천

출처www.cnblogs.com/biaobiao88/p/11846203.html