a53

Potrivire

a53
Feb 23rd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. /// solutia mea
  2. #include <bits/stdc++.h>
  3. #define DAU std::ios::sync_with_stdio(false); fin.tie(0); fout.tie(0);
  4. #define PLEC fin.close(); fout.close(); return 0;
  5. using namespace std;
  6. ifstream fin("p.in");
  7. ofstream fout("p.out");
  8. int n, m, x, nr, sum;
  9. string cif, str;
  10. unordered_map<string, bool> M;
  11. int main()
  12. {
  13. DAU
  14.  
  15. fin >> n;
  16. cif += '0';
  17. for (int i = 1; i <= n; ++i)
  18. fin >> x, cif += char(x + '0');
  19. for (int i = 1; i <= n; ++i)
  20. {
  21. str.clear();
  22. for (int j = 0; i + j <= n && j < 5; ++j)
  23. {
  24. str += cif[i + j];
  25. M[str] = true;
  26. }
  27. }
  28. fin >> m;
  29. for (int i = 1; i <= m; ++i)
  30. {
  31. fin >> str;
  32. if (M[str])
  33. {
  34. nr = 0;
  35. for (size_t j = 0; j < str.size(); ++j)
  36. nr = nr * 10 + str[j] - '0';
  37. sum += nr;
  38. M[str] = false;
  39. }
  40. }
  41. fout << sum;
  42.  
  43. PLEC
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. /// oficiala
  51. #include <iostream>
  52. #include <fstream>
  53. #include <algorithm>
  54. #include <cassert>
  55.  
  56. using namespace std;
  57.  
  58. ifstream fin("p.in");
  59. ofstream fout("p.out");
  60.  
  61. int n, A[100001], m, x;
  62. int S = 0;
  63. int v[100000];
  64.  
  65. int main()
  66. {
  67. fin >> n;
  68. for(int i = 1; i <= n ; i ++)
  69. {
  70. fin >> A[i];
  71. assert(A[i] >= 0 && A[i] <= 9);
  72. }
  73. for(int i = 1 ; i <= n ; i ++)
  74. v[A[i]] = 1;
  75. for(int i = 1 ; i <= n - 1; i ++)
  76. v[A[i]*10 + A[i+1]] = 1;
  77. for(int i = 1 ; i <= n - 2; i ++)
  78. v[A[i]*100 + A[i+1]*10+A[i+2]] = 1;
  79. for(int i = 1 ; i <= n - 3; i ++)
  80. v[A[i]*1000 + A[i+1]*100+A[i+2]*10+A[i+3]] = 1;
  81. for(int i = 1 ; i <= n - 4; i ++)
  82. v[A[i]*10000 + A[i+1]*1000 + A[i+2]*100 + A[i+3]*10 +A[i+4]] = 1;
  83.  
  84. for(fin >> m; m ; m --)
  85. {
  86. fin >> x;
  87. assert(x >= 0 && x <= 99999);
  88. if(v[x])
  89. S += x, v[x] = 0;
  90. }
  91.  
  92. fout << S << "\n";
  93.  
  94. fin.close();
  95. fout.close();
  96. return 0;
  97. }
Add Comment
Please, Sign In to add comment