Submission #31957951


Source Code Expand

#include <bits/stdc++.h>
#include <atcoder/fenwicktree>
using namespace std;

int main() {
  int n, m, q;
  cin >> n >> m >> q;
  vector<int> t(q), a(q), b(q), c(q);
  vector<vector<int>> subt(q);
  vector latest(n, pair(-1, 0));
  vector<long long> ans;
  for (int i = 0; i < q; ++i) {
    cin >> t[i];
    if (t[i] == 1) {
      cin >> a[i] >> b[i] >> c[i];
      a[i] -= 1;
    } else if (t[i] == 2) {
      cin >> a[i] >> b[i];
      a[i] -= 1;
      latest[a[i]] = pair(i, b[i]);
    } else {
      cin >> a[i] >> b[i];
      a[i] -= 1;
      const auto& [j, x] = latest[a[i]];
      const int id = ans.size();
      ans.emplace_back(x);
      c[i] = id;
      if (j >= 0) {
        subt[j].push_back(i);
      }
    }
  }
  atcoder::fenwick_tree<long long> fen(m + 1);
  for (int i = 0; i < q; ++i) {
    if (t[i] == 1) {
      fen.add(a[i], c[i]);
      fen.add(b[i], -c[i]);
    } else if (t[i] == 2) {
      for (const int j : subt[i]) {
        ans[c[j]] -= fen.sum(0, b[j]);
      }
    } else {
      ans[c[i]] += fen.sum(0, b[i]);
    }
  }
  for (const long long x : ans) {
    cout << x << '\n';
  }
  return 0; 
}

Submission Info

Submission Time
Task F - Operations on a Matrix
User KoD
Language C++ (GCC 9.2.1)
Score 500
Code Size 1178 Byte
Status AC
Exec Time 165 ms
Memory 15832 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 34
Set Name Test Cases
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
Case Name Status Exec Time Memory
example_00.txt AC 8 ms 3580 KiB
example_01.txt AC 3 ms 3472 KiB
example_02.txt AC 2 ms 3604 KiB
test_00.txt AC 161 ms 15144 KiB
test_01.txt AC 161 ms 14900 KiB
test_02.txt AC 160 ms 14892 KiB
test_03.txt AC 160 ms 14976 KiB
test_04.txt AC 164 ms 15144 KiB
test_05.txt AC 154 ms 12880 KiB
test_06.txt AC 157 ms 14072 KiB
test_07.txt AC 157 ms 13908 KiB
test_08.txt AC 154 ms 13804 KiB
test_09.txt AC 152 ms 13012 KiB
test_10.txt AC 9 ms 4824 KiB
test_11.txt AC 140 ms 13084 KiB
test_12.txt AC 70 ms 8420 KiB
test_13.txt AC 154 ms 13916 KiB
test_14.txt AC 85 ms 9384 KiB
test_15.txt AC 41 ms 6464 KiB
test_16.txt AC 46 ms 6704 KiB
test_17.txt AC 123 ms 10756 KiB
test_18.txt AC 65 ms 7692 KiB
test_19.txt AC 22 ms 4972 KiB
test_20.txt AC 165 ms 15596 KiB
test_21.txt AC 158 ms 15668 KiB
test_22.txt AC 155 ms 15688 KiB
test_23.txt AC 159 ms 15652 KiB
test_24.txt AC 158 ms 15584 KiB
test_25.txt AC 158 ms 15832 KiB
test_26.txt AC 160 ms 15636 KiB
test_27.txt AC 158 ms 15736 KiB
test_28.txt AC 157 ms 15716 KiB
test_29.txt AC 158 ms 15660 KiB
test_30.txt AC 156 ms 14092 KiB