Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. int n,m,x[100];
  8. char v[100][100];
  9.  
  10. void citire() {
  11. ifstream f("fazan.in");
  12. f >> n >> m;
  13. for (int i=1; i<=n; i++)
  14. do {
  15. f>>v[i];
  16. } while (strlen(v[i])>10);
  17. f.close();
  18. }
  19.  
  20. ofstream g("fazan.out");
  21. void afisare() {
  22. for (int i=1; i<=m; i++)
  23. g << v[x[i]] << " ";
  24. g << endl;
  25. }
  26.  
  27. int sol(int k) {
  28. return (k==m+1);
  29. }
  30.  
  31. int valid(int k) {
  32. for (int i=1; i<k; i++)
  33. if (x[i]==x[k]) return 0;
  34. if (k>1)
  35. if (v[x[k]][0]!=v[x[k-1]][strlen(v[x[k-1]])-2] || v[x[k]][1]!=v[x[k-1]][strlen(v[x[k-1]])-1]) return 0;
  36. return 1;
  37. }
  38.  
  39. void b(int k) {
  40. if (sol(k)) afisare();
  41. else for (int i=1; i<=n; i++) {
  42. x[k]=i;
  43. if (valid(k)) b(k+1);
  44. }
  45. }
  46.  
  47. int main()
  48. {
  49. citire();
  50. b(1);
  51. g.close();
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement