(ファイルIO):入力:factory.in出力:factory.out
制限時間:1000ミリ秒のスペースの制約:262144キロバイト特定の制限
後藤ProblemSet
タイトル説明
正のビジネスが活況を呈しているミルク!
牛乳加工工場で
処理ステーションは、番号
、及び
チャンネルは、それぞれ2つの加工ステーションに接続されています。(チャンネルの建設はそう、非常に高価です
他の全ての処理ステーションから各処理ステーションに到達できるように、チャネルの最小数)を用いて選択されました。
効率とイノベーションを向上させるために、
コンベヤは、各チャネルにインストールされています。残念ながら、彼はコンベアベルトが遅すぎる一方通行であることに気づいたとき、そして今、各チャネルは唯一の方向に沿って渡すことができます!だから今の状況は、もはや出発の各処理ステーションから他の処理ステーションに到達することができません。
しかし、
ものがあれば、少なくとも一つの処理ステーションが存在するように、完全に失敗しないかもしれないと思います
処理ステーションの処理ステーションからお互いに到達することができる満たします
。他の処理ステーションことに注意してください
iの処理ステーションを通過するかもしれない行きます
和
間にいくつかの中間サイト。してくださいヘルプ
処理ステーションiが存在するかどうかを決定します。
入力
入力の最初の行の整数を含んでいます
、処理ステーションの数。以下
行は、二つのスペースが整数によって分離含ま
和
,满足
と
。これは、一つの処理ステーションから発現されます
処理ステーションへ
から方向のみを許容する移動ベルト、
へ
移動方向。
出力
処理ステーションが存在する場合
出会いを達することができ、他の処理ステーションの処理ステーションから開始することができます
、最小出力条件が満たされています
。それ以外の場合は、出力
。
サンプル入力
。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);
}