16115 | 2025-04-03 07:09:03 | RRoli | 2015. szeptember | cpp17 | Hibás válasz a 7. teszten | 1ms | 328 KiB |
#include <bits/stdc++.h>
using namespace std;
int n, m, k, kor[100][3];
bool fel[100], al[100], szom[100][100];
int main() {
cin >> n >> m >> k;
for(int i = 0; i < k; i++) {
cin >> kor[i][0] >> kor[i][1] >> kor[i][2];
if(kor[i][1] - kor[i][2] <= 0) al[i] = true;
if(kor[i][1] + kor[i][2] >= n) fel[i] = true;
for(int j = 0; j < i; j++) {
if(sqrt((kor[i][0]-kor[j][0])*(kor[i][0]-kor[j][0]) + (kor[i][1]-kor[j][1])*(kor[i][1]-kor[j][1])) <= kor[i][2]+kor[j][2]) {
szom[i][j] = true;
szom[j][i] = true;
if(fel[i] || fel[j]) {fel[i] = true; fel[j] = true;}
if(al[i] || al[j]) {al[i] = true; al[j] = true;}
}
}
}
queue<int> sor;
for(int i = 0; i < k; i++) if(fel[i]) sor.push(i);
while(!sor.empty()) {
for(int i = 0; i < k; i++) {
if(szom[sor.front()][i] && !fel[i]) {
fel[i] = true;
sor.push(i);
}
}
sor.pop();
}
for(int i = 0; i < k; i++) if(al[i]) sor.push(i);
while(!sor.empty()) {
for(int i = 0; i < k; i++) {
if(szom[sor.front()][i] && !al[i]) {
al[i] = true;
sor.push(i);
}
}
sor.pop();
}
for(int i = 0; i < k; i++) {
if(fel[i] && al[i]) {
cout << "Nem vezet";
return 0;
}
}
cout << "Vezet";
return 0;
}
Vezet
Elvárt kimenet:Vezet
Ellenőrző kimenete:ok "Vezet"
Nem vezet
Elvárt kimenet:Nem vezet
Ellenőrző kimenete:ok 2 tokens
Vezet
Elvárt kimenet:Vezet
Ellenőrző kimenete:ok "Vezet"
Vezet
Elvárt kimenet:Vezet
Ellenőrző kimenete:ok "Vezet"
Nem vezet
Elvárt kimenet:Nem vezet
Ellenőrző kimenete:ok 2 tokens
Nem vezet
Elvárt kimenet:Nem vezet
Ellenőrző kimenete:ok 2 tokens
Vezet
Elvárt kimenet:Nem vezet
Ellenőrző kimenete:wrong answer 1st words differ - expected: 'Nem', found: 'Vezet'