kazoo04氏がザ・インタビューズで問題出してたのではっつけますね
たかし君の会社は中小ブラックなので、たまに幹部がわけのわからないことをいいます。
今回は、「上司は部下より小さいIPアドレスを割り振るようにするべきだ」と言われてしまいました。
しかも、「IPアドレスは途中で飛んではいけない。たとえば192.168.0.2と、192.168.0.4が使われているのに192.168.0.3が使われていないのは資源の無駄遣いになる」とも言われてしまいました。
困ったことに、たかし君の会社はまだ大きくないので、組織がきれいなピラミッド状になっていません。
そのため偉い順にIPアドレスを振るのはなかなか大変な作業です。
そこでたかし君は、上司-部下の関係を入力すると、割り当てるべきIPアドレスを出力するプログラムを作ろうとしています。
問題の性質は以下のようになっています。
・社員の数は1人以上200人以下。
・便宜上、社員は0から順番に社員番号が割り当てられているが役職とは関係ない。
・社員は、0人以上の上司を持っている。
・Aさんの上司がBさん、Bさんの上司がCさん、Cさんの上司がAさん、のように、上司が決定できないような組織図にはなっていない。
・IPアドレスは順番に割り当てなければならない。途中で飛んではいけない。
・IPアドレスは、192.168.0.2から始める(192.168.0.1はルータが使っています)。
入力ファイルは以下のようになっています(社員3人の場合)。
社員番号Nの人の上司が社員番号Mの人の場合、N行M列目の値は1、そうでない場合は0です。
000
101
100
この場合だと、
・社員番号0の人には上司がいません。
・社員番号1の人の上司は、社員番号0の人と2の人です。
・社員番号2の人の上司は、社員番号0の人です。
出力ファイルは、社員番号Nの人に対して割り振るIPアドレスです。
上記の入力ファイルの例を見てみると、偉さは社員番号0の人>1の人>2の人であり、
またIPアドレスは192.168.0.2から順に振るので
192.168.0.2
192.168.0.3
192.168.0.4
となります。
たかし君の会社は中小ブラックなので、たまに幹部がわけのわからないことをいいます。
今回は、「上司は部下より小さいIPアドレスを割り振るようにするべきだ」と言われてしまいました。
しかも、「IPアドレスは途中で飛んではいけない。たとえば192.168.0.2と、192.168.0.4が使われているのに192.168.0.3が使われていないのは資源の無駄遣いになる」とも言われてしまいました。
困ったことに、たかし君の会社はまだ大きくないので、組織がきれいなピラミッド状になっていません。
そのため偉い順にIPアドレスを振るのはなかなか大変な作業です。
そこでたかし君は、上司-部下の関係を入力すると、割り当てるべきIPアドレスを出力するプログラムを作ろうとしています。
問題の性質は以下のようになっています。
・社員の数は1人以上200人以下。
・便宜上、社員は0から順番に社員番号が割り当てられているが役職とは関係ない。
・社員は、0人以上の上司を持っている。
・Aさんの上司がBさん、Bさんの上司がCさん、Cさんの上司がAさん、のように、上司が決定できないような組織図にはなっていない。
・IPアドレスは順番に割り当てなければならない。途中で飛んではいけない。
・IPアドレスは、192.168.0.2から始める(192.168.0.1はルータが使っています)。
入力ファイルは以下のようになっています(社員3人の場合)。
社員番号Nの人の上司が社員番号Mの人の場合、N行M列目の値は1、そうでない場合は0です。
000
101
100
この場合だと、
・社員番号0の人には上司がいません。
・社員番号1の人の上司は、社員番号0の人と2の人です。
・社員番号2の人の上司は、社員番号0の人です。
出力ファイルは、社員番号Nの人に対して割り振るIPアドレスです。
上記の入力ファイルの例を見てみると、偉さは社員番号0の人>1の人>2の人であり、
またIPアドレスは192.168.0.2から順に振るので
192.168.0.2
192.168.0.3
192.168.0.4
となります。