Submission #256900

# Submission time Handle Problem Language Result Execution time Memory
256900 2020-08-03T11:11:52 Z fedoseevtimofey Bitaro, who Leaps through Time (JOI19_timeleap) C++14
4 / 100
3000 ms 19672 KB
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <random>
#include <iomanip>
#include <functional>
#include <cassert>
 
using namespace std;
 
typedef long long ll;
 
const int N = 3e5 + 7;
 
struct Query {
  int t, a, b, c, d, i;
};
 
ll res[N];
 
void solve(int n, vector <int> l, vector <int> r, vector <Query> qrs) {
  int q = qrs.size();
  for (int tt = 0; tt < q; ++tt) {
    int t = qrs[tt].t;
    if (t == 1) {
      int p = qrs[tt].a, s = qrs[tt].b, e = qrs[tt].c;
      l[p] = s;
      r[p] = e - 1;
    } else {
      int a = qrs[tt].a, b = qrs[tt].b, c = qrs[tt].c, d = qrs[tt].d;
      assert(a <= c);
      ll ans = 0;
      int tm = b - a;
      for (int i = a; i < c; ++i) {
        ans += max(0, tm - (r[i] - i)); 
        tm = min(tm, (r[i] - i));
        tm = max(tm, (l[i] - i));
      } 
      ans += max(0, tm - (d - c));
      res[qrs[tt].i] = ans;
    }
  } 
}
 
int main() {
  ios_base::sync_with_stdio(false); cin.tie(0);
#ifdef LOCAL
  freopen("input.txt", "r", stdin);
#endif
  int n, q;
  cin >> n >> q;
  vector <int> l(n - 1), r(n - 1);
  for (int i = 0; i < n - 1; ++i) {
    cin >> l[i] >> r[i];
    --r[i];
  }
  vector <Query> qrs;
  int cnt_qr = 0;
  for (int tt = 0; tt < q; ++tt) {
    int t;
    cin >> t;
    if (t == 1) {
      int p, s, e;
      cin >> p >> s >> e;
      --p;
      qrs.push_back({t, p, s, e, -1, -1});
    } else {
      int a, b, c, d;
      cin >> a >> b >> c >> d;
      --a, --c;
      qrs.push_back({t, a, b, c, d, cnt_qr++});
    }
  } 
  {
    vector <Query> qr;
    for (auto qq : qrs) {
      if (qq.t == 1) qr.push_back(qq);
      else if (qq.a <= qq.c) qr.push_back(qq);
    }
    solve(n, l, r, qr);
  }
  {
    reverse(l.begin(), l.end());
    reverse(r.begin(), r.end());
    vector <Query> qr;
    for (auto qq : qrs) {
      if (qq.t == 1) {
        qq.a = (n - 1) - qq.a - 1;
        qr.push_back(qq);
      }
      else if (qq.a > qq.c) {
        qq.a = n - qq.a - 1;
        qq.c = n - qq.c - 1;
        qr.push_back(qq);
      }
    }
    solve(n, l, r, qr);
  }
  for (int i = 0; i < cnt_qr; ++i) {
    cout << res[i] << '\n';
  }
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 384 KB Output is correct
22 Correct 2 ms 384 KB Output is correct
23 Correct 3 ms 384 KB Output is correct
24 Correct 2 ms 384 KB Output is correct
25 Correct 2 ms 384 KB Output is correct
26 Correct 2 ms 384 KB Output is correct
27 Correct 2 ms 384 KB Output is correct
28 Correct 2 ms 384 KB Output is correct
29 Correct 2 ms 384 KB Output is correct
30 Correct 2 ms 512 KB Output is correct
31 Correct 2 ms 384 KB Output is correct
32 Correct 2 ms 384 KB Output is correct
33 Correct 1 ms 384 KB Output is correct
34 Correct 2 ms 384 KB Output is correct
35 Correct 2 ms 384 KB Output is correct
36 Correct 2 ms 384 KB Output is correct
37 Correct 2 ms 384 KB Output is correct
38 Correct 2 ms 384 KB Output is correct
39 Correct 2 ms 384 KB Output is correct
40 Correct 2 ms 384 KB Output is correct
41 Correct 1 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 3052 ms 19672 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 0 ms 384 KB Output is correct
11 Correct 1 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 1 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
21 Correct 2 ms 384 KB Output is correct
22 Correct 2 ms 384 KB Output is correct
23 Correct 3 ms 384 KB Output is correct
24 Correct 2 ms 384 KB Output is correct
25 Correct 2 ms 384 KB Output is correct
26 Correct 2 ms 384 KB Output is correct
27 Correct 2 ms 384 KB Output is correct
28 Correct 2 ms 384 KB Output is correct
29 Correct 2 ms 384 KB Output is correct
30 Correct 2 ms 512 KB Output is correct
31 Correct 2 ms 384 KB Output is correct
32 Correct 2 ms 384 KB Output is correct
33 Correct 1 ms 384 KB Output is correct
34 Correct 2 ms 384 KB Output is correct
35 Correct 2 ms 384 KB Output is correct
36 Correct 2 ms 384 KB Output is correct
37 Correct 2 ms 384 KB Output is correct
38 Correct 2 ms 384 KB Output is correct
39 Correct 2 ms 384 KB Output is correct
40 Correct 2 ms 384 KB Output is correct
41 Correct 1 ms 384 KB Output is correct
42 Execution timed out 3052 ms 19672 KB Time limit exceeded
43 Halted 0 ms 0 KB -