Pagini recente » Cod sursa (job #2163786) | Cod sursa (job #2123932) | Cod sursa (job #1280284) | Cod sursa (job #2533172) | Cod sursa (job #2049676)
#include <algorithm>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("fof.in");
ofstream out("fof.out");
const int NMax = 1e3 + 2;
int N, M;
vector <pair <int, int> > Contor;
vector <int> G[NMax];
queue <int> Q;
void Citire (){
in >> N >> M;
int x, y;
for (int i = 1; i <= M; i++){
in >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
}
bool SortareS (pair <int, int> x, pair <int, int> y){
return x.second > y.second;
}
bool SortareF (pair <int, int> x, pair <int, int> y){
return x.first > y.first;
}
void CreareVector (int j){
bool Ok = false;
for (int k = 0; k < (int)Contor.size(); k++)
if (Contor[k].second == j){
Contor[k].first ++;
Ok = true;
}
if (!Ok){
pair <int, int> Aux = make_pair(1, j);
Contor.push_back (Aux);
}
}
void Solve (int Nod){
for (int i : G[Nod])
for (int j : G[i])
if (j != Nod)
CreareVector (j);
sort (Contor.begin(), Contor.end(), SortareF);
sort (Contor.begin(), Contor.end(), SortareS);
while (!Contor.empty()){
out << Contor.back().second << " ";
Contor.pop_back();
}
out << '\n';
}
int main (){
Citire();
for (int i = 1; i <= N; i++)
Solve(i);
return 0;
}