| 16882 | 2025-05-15 12:56:20 | Ablablabla | Vasútépítés | cpp17 | Hibás válasz 40/100 | 103ms | 9392 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
vector<vector<int>> csucsok, ans, egyutt, kor;
vector<bool> bejart;
int keres(int akt, int elozo){
bejart[akt] = 1;
egyutt.back().push_back(akt);
int vissza = -1;
for(int x : csucsok[akt]){
if(x == elozo) continue;
if(bejart[x]){
vissza = x;
continue;
}
int a = keres(x, akt);
if(a != -1){
vissza = a;
}
}
if(vissza != -1){
kor.back().push_back(akt);
}
if(vissza == akt){
vissza = -1;
}
return vissza;
}
int lent = 1, fent = 1e9;
void megold(int akt){
bejart[akt] = 1;
for(int x : csucsok[akt]){
if(bejart[x]) continue;
ans[akt][x] = lent;
ans[x][akt] = lent;
lent++;
megold(x);
}
}
int main()
{
int n, m;
cin >> n >> m;
csucsok.assign(n, vector<int>());
ans.assign(n, vector<int>(n, 0));
for(int i = 0; i < n; i++){
for(int j = i + 1; j < n; j++){
ans[i][j] = ans[j][i] = fent;
fent--;
}
}
for(int i = 0; i < m; i++){
int a, b;
cin >> a >> b;
a--; b--;
csucsok[a].push_back(b);
csucsok[b].push_back(a);
}
if(n < m){
cout << "-1\n";
return 0;
}
for(auto x : csucsok){
if(x.size() == 0){
cout << "-1\n";
return 0;
}
}
bejart.assign(n, 0);
for(int i = 0; i < n; i++){
if(!bejart[i]){
egyutt.push_back(vector<int>());
kor.push_back(vector<int>());
keres(i, -1);
}
}
int k = egyutt.size();
bejart.assign(n, 0);
for(int i = 0; i < k; i++){
if(kor[i].size() == 0){
// fa
megold(egyutt[i][0]);
} else{
// fak vezetnek a korbe
// korben eloszor
for(int j = 0; j < kor[i].size(); j++){
int elozo = (j - 1 + kor[i].size()) % kor[i].size();
ans[kor[i][elozo]][kor[i][j]] = lent;
ans[kor[i][j]][kor[i][elozo]] = lent;
lent++;
bejart[kor[i][j]] = 1;
}
// aztan fakban
for(int x : kor[i]){
megold(x);
}
}
}
for(int i = 0; i + 1 < n; i++){
for(int j = i + 1; j < n; j++){
cout << ans[i][j] << " ";
}
cout << "\n";
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| 3 | Elfogadva | 2ms | 316 KiB | ||||
| subtask2 | 40/40 | ||||||
| 4 | Elfogadva | 74ms | 9324 KiB | ||||
| 5 | Elfogadva | 74ms | 9344 KiB | ||||
| 6 | Elfogadva | 76ms | 9288 KiB | ||||
| 7 | Elfogadva | 75ms | 9268 KiB | ||||
| 8 | Elfogadva | 76ms | 9392 KiB | ||||
| 9 | Elfogadva | 76ms | 9248 KiB | ||||
| 10 | Elfogadva | 74ms | 9240 KiB | ||||
| 11 | Elfogadva | 1ms | 316 KiB | ||||
| subtask3 | 0/60 | ||||||
| 12 | Elfogadva | 74ms | 9324 KiB | ||||
| 13 | Elfogadva | 74ms | 9344 KiB | ||||
| 14 | Elfogadva | 76ms | 9288 KiB | ||||
| 15 | Elfogadva | 75ms | 9268 KiB | ||||
| 16 | Elfogadva | 76ms | 9392 KiB | ||||
| 17 | Elfogadva | 76ms | 9248 KiB | ||||
| 18 | Elfogadva | 74ms | 9240 KiB | ||||
| 19 | Elfogadva | 1ms | 316 KiB | ||||
| 20 | Hibás válasz | 87ms | 9368 KiB | ||||
| 21 | Hibás válasz | 75ms | 9248 KiB | ||||
| 22 | Hibás válasz | 75ms | 9268 KiB | ||||
| 23 | Hibás válasz | 76ms | 9252 KiB | ||||
| 24 | Hibás válasz | 72ms | 9272 KiB | ||||
| 25 | Hibás válasz | 75ms | 9252 KiB | ||||
| 26 | Hibás válasz | 72ms | 9264 KiB | ||||
| 27 | Elfogadva | 74ms | 9268 KiB | ||||
| 28 | Elfogadva | 103ms | 7988 KiB | ||||
| 29 | Elfogadva | 8ms | 4384 KiB | ||||
| 30 | Elfogadva | 7ms | 4404 KiB | ||||
| 31 | Hibás válasz | 75ms | 9204 KiB | ||||