Advertisement
a53

zigzag

a53
Mar 8th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include<fstream>
  2. #include<string>
  3. using namespace std;
  4. FILE *fin;
  5.  
  6. ofstream fout("zigzag.out");
  7. char s[100010], a[50010],chr;
  8. int n,c,x,p,k,nr,m,i;
  9. int main()
  10. {
  11. fin=fopen("zigzag.in","r");
  12. fscanf(fin,"%d%d",&c,&n);
  13. fscanf(fin,"%c",&chr);
  14. for(i=1;i<=n;i++)
  15. {fscanf(fin,"%c",&chr);a[i]=chr;}
  16. nr=(n%(2*c-2)==0?n/(2*c-2):n/(2*c-2)+1);
  17. m=nr*(2*c-2);
  18. for(i=n+1;i<=m;i++)
  19. s[i]='X';
  20. k=1;
  21. //rand 1
  22. for(x=0;x<=nr-1;x++)
  23. {
  24.  
  25. if(s[x*(2*c-2)+1]!='X')
  26. {s[x*(2*c-2)+1]=a[k++];}
  27. }
  28. //randuri de la 2 la c-1
  29. for(p=2;p<=c-1;p++)
  30. {
  31. for(x=0;x<=nr-1;x++)
  32. {
  33. if(s[x*(2*c-2)+p]!='X')
  34. s[x*(2*c-2)+p]=a[k++];
  35. if(s[x*(2*c-2)+2*c-p]!='X')
  36. s[x*(2*c-2)+2*c-p]=a[k++];
  37. }
  38. }
  39. //rand c
  40. for(x=0;x<=nr-1;x++)
  41. {
  42.  
  43. if(s[x*(2*c-2)+c]!='X')
  44. s[x*(2*c-2)+c]=a[k++];
  45. }
  46. for(i=1;i<=n;i++)
  47. fout<<s[i];
  48. fout<<'\n';
  49. fout.close();
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement