Go to diff to previous submission
#include <cstdio> #include <cmath> #include <iostream> #include <cstring> #include <cstdlib> #include <set> #include <map> using namespace std; int main() { int points, lines; while (scanf("%d %d", &points, &lines) == 2) { std::map<int, std::set<int> > connections; bool x = false; int f, s; while (lines--) { scanf("%d %d", &f, &s); connections[s].insert(f); connections[f].insert(s); if (connections[s].size() >= 4) { printf("YES\n"); x = true; break; } if (connections[f].size() >= 4) { printf("YES\n"); x = true; break; } } if (lines > 0) while (lines--) scanf("%d %d", &f, &s); if (!x) printf("NO\n"); } return 0; }
--- c5.s812.cteam044.fn.cpp.0.fn.cpp +++ c5.s851.cteam044.fn.cpp.0.fn.cpp @@ -4,4 +4,6 @@ #include <cstring> #include <cstdlib> +#include <set> +#include <map> using namespace std; @@ -11,8 +12,7 @@ { int points, lines; - int counts[10000]; while (scanf("%d %d", &points, &lines) == 2) { - memset(counts, 0, sizeof(*counts) * points); + std::map<int, std::set<int> > connections; bool x = false; int f, s; @@ -20,5 +20,7 @@ { scanf("%d %d", &f, &s); - if (++counts[f - 1] == 4) + connections[s].insert(f); + connections[f].insert(s); + if (connections[s].size() >= 4) { printf("YES\n"); @@ -26,5 +28,5 @@ break; } - if (++counts[s - 1] == 4) + if (connections[f].size() >= 4) { printf("YES\n");