Advertisement
Ne-Biolog

Untitled

Mar 8th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // Task
  4. //
  5. // Created by Денис Домашевич on 08.03.2018.
  6. // Copyright © 2018 Денис Домашевич. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <map>
  11.  
  12. using namespace std;
  13.  
  14. int n, numberOfQueries;
  15.  
  16. struct IP {
  17. public:
  18. void read() {
  19. for (int i = 0; i < 4; ++i) {
  20. cin >> numbers[i];
  21. getchar();
  22. }
  23. }
  24. void write() {
  25. for (int i = 0; i < 4; ++i) {
  26. cout << numbers[i];
  27. if(i != 3) {
  28. cout << '.';
  29. }
  30. }
  31. cout << ';';
  32. }
  33. friend bool operator < (const IP& left, const IP& right) {
  34. bool ok = 0;
  35. for(int i = 0; i < 4; ++i) {
  36. if(left.numbers[i] < right.numbers[i]) {
  37. ok = 1;
  38. }
  39. }
  40. return ok;
  41. }
  42. friend bool operator == (const IP& a, const IP& b) {
  43. bool ok = 1;
  44. for(int i = 0; i < 4; ++i) {
  45. if(a.numbers[i] != b.numbers[i]) {
  46. ok = 0;
  47. }
  48. }
  49. return ok;
  50. }
  51.  
  52. private:
  53. int numbers[4];
  54. };
  55.  
  56. map <IP, string> servers;
  57.  
  58. int main(int argc, const char * argv[]) {
  59.  
  60. cin >> n >> numberOfQueries;
  61. for (int i = 0; i < n; ++i) {
  62. string command;
  63. cin >> command;
  64. IP newIP; newIP.read();
  65. if(!servers.count(newIP)) {
  66. servers[newIP] = command;
  67. }
  68. }
  69.  
  70. while (numberOfQueries--) {
  71. string command;
  72. cin >> command;
  73. IP checkIP; checkIP.read();
  74. getchar();
  75. cout << command << ' ';
  76. checkIP.write();
  77. if(servers.count(checkIP)) {
  78.  
  79. cout << " #" << servers[checkIP] << '\n';
  80. } else {
  81. cout << " #main\n";
  82. }
  83. }
  84.  
  85. return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement