Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream fin("pachete.in");
  5. ofstream fout("pachete.out");
  6. int n,a[10002],s,k,i,sol[10002],y,pozg,ok;
  7. int valid (int n)
  8. {
  9. if (a[n+1]!=0) return 0;
  10. for(int i=1; i<=n; i++)
  11. if (a[i]!=i) return 0;
  12. return 1;
  13. }
  14. int main ()
  15. {
  16. fin>>n;
  17. k=1;
  18. for (i=1; i<=n; i++)
  19. fin>>a[i];
  20. pozg=n+1;
  21. a[pozg]=0;
  22. while (valid(n)==0)
  23. {
  24.  
  25. if (pozg==n+1)
  26. {
  27. ok=0;
  28. for (i=1; i<=n; i++)
  29. if (a[i]!=i and ok==0)
  30. {
  31. swap(a[pozg],a[i]);
  32. sol[k++]=i;
  33. sol[k++]=pozg;
  34. pozg=i;
  35. ok=1;
  36. }
  37. }
  38. else
  39. for (i=1; i<=n+1; i++)
  40. if (a[i]==pozg)
  41. {
  42. swap(a[i],a[pozg]);
  43. sol[k]=i;
  44. k++;
  45. sol[k]=pozg;
  46. k++;
  47. pozg=i;
  48. }
  49.  
  50. }
  51.  
  52. fout<<k/2<<endl;
  53. for (i=1; i<=k-1; i++)
  54. {
  55. if (i%2!=0 and i>=2) fout<<endl;
  56. fout<<sol[i]<<" ";
  57. }
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement