fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX = 100000;
  7.  
  8. int M, N, Q, i, h;
  9. char t;
  10. int a[MAX], b[MAX], index[MAX];
  11. vector<vector<int>> v;
  12.  
  13. void inizia(int N, int M) {
  14. v.resize(M);
  15. v[0].resize(N);
  16. for (int j = 0; j < N; j++) {
  17. v[0][j] = j;
  18. }
  19. index[0] = N;
  20. for (int j = 1; j < M; j++) {
  21. index[j] = 0;
  22. }
  23. }
  24.  
  25. void sposta(int a, int b) {
  26. v[b].resize(index[b] + 1);
  27. v[b][index[b]] = v[a][index[a] - 1];
  28. index[a]--;
  29. index[b]++;
  30. }
  31.  
  32. int controlla(int a, int i) {
  33. if (index[a] + 1 <= i) {
  34. return -1;
  35. } else {
  36. return v[a][i];
  37. }
  38. }
  39.  
  40. int main() {
  41. // Uncomment the following lines if you want to read/write from file
  42. // freopen("input.txt", "r", stdin);
  43. // freopen("output.txt", "w", stdout);
  44.  
  45. cin >> N >> M >> Q;
  46. inizia(N, M);
  47. for (i = 0; i < Q; i++) {
  48. cin >> t >> a[i] >> b[i];
  49. if (t == 's') {
  50. sposta(a[i], b[i]);
  51. } else if (t == 'c') {
  52. cout << controlla(a[i], b[i]) << endl;
  53. }
  54. }
  55. return 0;
  56. }
  57.  
  58.  
Success #stdin #stdout 0.01s 5324KB
stdin
5 6 7
s 0 1
c 1 0
s 0 2
s 1 2
s 0 2
c 2 2
c 2 1
stdout
4
2
4