Advertisement
a53

origami1

a53
Aug 29th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream fin("origami1.in");
  4. ofstream fout("origami1.out");
  5. int n,k,i,j,a,b,v[175][175];
  6.  
  7. int main()
  8. {
  9. fin >> n >> k;
  10. int L = n; int l = n;
  11. for (i=1; i<=n; i++)
  12. for (j=1; j<=n; j++)
  13. v[i][j] = 1;
  14. for (;k--;)
  15. {
  16. fin >> a >> b;
  17. int ind = 0;
  18. if (a == 1)
  19. {
  20. if (2*b <= L)
  21. ind = b;
  22. else
  23. {
  24. ind = L-b;
  25. for (int t=2*b-L; t>=1; t--)
  26. for (i=1; i<=l; i++)
  27. {
  28. int aux = v[i][t];
  29. for (j=t; j<=L-1; j++)
  30. v[i][j] = v[i][j+1];
  31. v[i][L] = aux;
  32. }
  33. }
  34. for (j=1; j<=ind; j++)
  35. for (i=1; i<=l; i++)
  36. v[i][2*ind-j+1] += v[i][j];
  37. for (i=1; i<=l; i++)
  38. for (j=1; j<=L-ind; j++)
  39. v[i][j] = v[i][j+ind];
  40. L -= ind;
  41. }
  42. else
  43. {
  44. if (2*b <= l)
  45. ind = b;
  46. else
  47. {
  48. ind = l-b;
  49. for (int t=2*b-l; t>=1; t--)
  50. for (i=1; i<=L; i++)
  51. {
  52. int aux = v[t][i];
  53. for (j=t; j<=l-1; j++)
  54. v[j][i] = v[j+1][i];
  55. v[l][i] = aux;
  56. }
  57. }
  58. for (i=1; i<=ind; i++)
  59. for (j=1; j<=L; j++)
  60. v[2*ind-i+1][j] += v[i][j];
  61. for (i=1; i<=l-ind; i++)
  62. for (j=1; j<=L; j++)
  63. v[i][j] = v[i+ind][j];
  64. l -= ind;
  65. }
  66. }
  67. int maxim = 0;
  68. for (i=1; i<=l; i++)
  69. for (j=1; j<=L; j++)
  70. maxim = max(maxim, v[i][j]);
  71. fout << l << " " << L << " " << maxim;
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement