Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("origami1.in");
- ofstream fout("origami1.out");
- int n,k,i,j,a,b,v[175][175];
- int main()
- {
- fin >> n >> k;
- int L = n; int l = n;
- for (i=1; i<=n; i++)
- for (j=1; j<=n; j++)
- v[i][j] = 1;
- for (;k--;)
- {
- fin >> a >> b;
- int ind = 0;
- if (a == 1)
- {
- if (2*b <= L)
- ind = b;
- else
- {
- ind = L-b;
- for (int t=2*b-L; t>=1; t--)
- for (i=1; i<=l; i++)
- {
- int aux = v[i][t];
- for (j=t; j<=L-1; j++)
- v[i][j] = v[i][j+1];
- v[i][L] = aux;
- }
- }
- for (j=1; j<=ind; j++)
- for (i=1; i<=l; i++)
- v[i][2*ind-j+1] += v[i][j];
- for (i=1; i<=l; i++)
- for (j=1; j<=L-ind; j++)
- v[i][j] = v[i][j+ind];
- L -= ind;
- }
- else
- {
- if (2*b <= l)
- ind = b;
- else
- {
- ind = l-b;
- for (int t=2*b-l; t>=1; t--)
- for (i=1; i<=L; i++)
- {
- int aux = v[t][i];
- for (j=t; j<=l-1; j++)
- v[j][i] = v[j+1][i];
- v[l][i] = aux;
- }
- }
- for (i=1; i<=ind; i++)
- for (j=1; j<=L; j++)
- v[2*ind-i+1][j] += v[i][j];
- for (i=1; i<=l-ind; i++)
- for (j=1; j<=L; j++)
- v[i][j] = v[i+ind][j];
- l -= ind;
- }
- }
- int maxim = 0;
- for (i=1; i<=l; i++)
- for (j=1; j<=L; j++)
- maxim = max(maxim, v[i][j]);
- fout << l << " " << L << " " << maxim;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement