(파일 IO) : 입력 : factory.in 출력 : factory.out
시간 제한 : 1000 MS 공간 제약 : 262,144킬로바이트의 특정 제한
고토 ProblemSet
제목 설명
우유 양성 사업은 호황을 누리고있다!
에서 우유 가공 공장
프로세싱 스테이션은 넘버링
및
채널은 각각은 2 개 가공 스테이션에 연결된다. (채널 구조 때문에, 매우 비싼
다른 프로세싱 스테이션에서 각각의 공정 스테이션에 도달 할 수 있도록 채널의 최소 개수를) 이용하여 선택.
효율성과 혁신을 개선하기 위해,
콘베이어 각 채널에 설치된다. 불행하게도, 그는 컨베이어 벨트 너무 늦게 한 방법이라는 것을 깨달았을 때, 이제 각 채널은 방향을 따라 전달할 수 있습니다! 그래서 지금의 상황은 더 이상 출발의 각 공정 스테이션에서 다른 처리 스테이션에 도달 할 수 없다.
그러나,
일이 완전히 실패 할 수있다라고 생각 긴 적어도 하나 개의 처리 스테이션있을뿐만
처리 스테이션 프로세싱 스테이션에서 서로 접근 할 수있는 만족
. 다른로부터 처리 스테이션 유의
내가 처리 스테이션을 통해 갈 수도 이동
합
사이에 중간 사이트. 도와주세요
처리 스테이션 제가 존재 하는지를 결정한다.
입력
은 입력의 제 1 라인의 정수를 포함
, 프로세싱 스테이션의 개수. 다음
행은 두 개의 공간으로 분리 정수 포함
합
,满足
과
. 이것은 하나 개의 처리 스테이션으로부터 발현
처리 스테이션
의 방향만을 허용하는 이동 벨트
에
이동 방향.
출력
처리 스테이션이 존재하는 경우
다른 처리 스테이션 처리 역에서 시작할 수 있습니다 충족에 도달 할 수있다
, 최소 출력 조건을 만족
. 그렇지 않으면, 출력
.
샘플 입력
. (3)
. (1) (2)
. (3) (2)
샘플 출력
2
데이터 범위 제한
아이디어를 문제 해결
포인트가 수행 시작 지점 벨트 (있는 경우
), 그는 심지어 질문하지 복잡한 의미, 그를 향해 지점이되지 않습니다.
그래서,
우리는 출발점 벨트를 찾고되지 않습니다 (하지
) 점,
물론, 포인트가있는 경우
점하지
출력
.
코드
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,a,b,x[110],y[110],ans;
int main(){
freopen("factory.in","r",stdin);
freopen("factory.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n-1;i++)
{
scanf("%d%d",&a,&b);
x[a]++;
y[b]++;
}
ans=-1;
for(int i=1;i<=n;i++)
{
if(x[i]==0&&ans!=-1) {ans=-1;break;}
if(x[i]==0) ans=i;
}
printf("%d",ans);
}