fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long int ll;
  5. #define IOS ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  6.  
  7. typedef pair<int,int>pr;
  8. #define all(i) i.begin() , i.end()
  9. #define ft first
  10. #define sn second
  11. #define pb push_back
  12.  
  13. const int mod = 1e9+7;
  14. #define en "\n"
  15. #define dbg cout<<"rony\n";
  16.  
  17. vector<int>g[30];
  18. int vis[30];
  19. #define MAXN 200010
  20. vector<pair<int,int>>v;
  21.  
  22. void dfs(int nd)
  23. {
  24. vis[nd] = 1;
  25. for(auto i:g[nd])
  26. {
  27. if(vis[i] == 1) continue;
  28. v.pb({i,nd});
  29. dfs(i);
  30. }
  31. }
  32. void solve()
  33. {
  34. int n;
  35. cin >> n;
  36. string s,t;
  37. cin >> s >> t;
  38. map<pair<char,char>,int>ma;
  39.  
  40. for(int i = 0;i < n;i++)
  41. {
  42. if(s[i] == t[i]) continue;
  43. char c = max(s[i],t[i]);
  44. char d = min(s[i],t[i]);
  45. if(ma[{d,c}] == 1) continue;
  46.  
  47. ma[{d,c}]++;
  48. g[s[i]-'a'].pb(t[i]-'a');
  49. g[t[i]-'a'].pb(s[i] - 'a');
  50. }
  51.  
  52. for(int i = 0;i < 26;i++)
  53. {
  54. if(vis[i] == 0 && g[i].size() > 0)
  55. {
  56. dfs(i);
  57. }
  58. }
  59.  
  60. cout<<v.size()<<en;
  61. for(auto i:v)
  62. {
  63. char c = i.ft + 'a';
  64. char d = i.sn + 'a';
  65. cout<<c<<" "<<d<<en;
  66. }
  67. }
  68.  
  69. int main()
  70. {
  71. IOS;
  72. int t;
  73. //cin >> t;
  74. t = 1;
  75. while ( t-- )
  76. {
  77.  
  78. solve();
  79. }
  80. return 0;
  81. }
Success #stdin #stdout 0.01s 5460KB
stdin
Standard input is empty
stdout
0