Submission #105007

#TimeUsernameProblemLanguageResultExecution timeMemory
105007Just_Solve_The_ProblemBitaro, who Leaps through Time (JOI19_timeleap)C++11
4 / 100
3086 ms5772 KiB
#include <bits/stdc++.h> #define ll long long #define fr first #define sc second using namespace std; const int N = (int)3e5 + 7; int n, q; pair < int, int > ar[2][N]; ll solve1(int a, int b, int c, int d) { ll res = 0; int cur = b - a; d -= c; for (int i = a + 1; i <= c; i++) { cur = max(cur, ar[0][i].fr); res += max(cur - ar[0][i].sc, 0); cur = min(cur, ar[0][i].sc); } res += max(cur - d, 0); return res; } ll solve2(int a, int b, int c, int d) { ll res = 0; int cur = b + a; d += c; for (int i = a; i > c; i--) { cur = max(cur, ar[1][i].fr); res += max(cur - ar[1][i].sc, 0); cur = min(cur, ar[1][i].sc); } res += max(cur - d, 0); return res; } main() { scanf("%d %d", &n, &q); for (int i = 2; i <= n; i++) { scanf("%d %d", &ar[0][i].fr, &ar[0][i].sc); ar[1][i].fr = ar[0][i].fr + i; ar[1][i].sc = ar[0][i].sc + i - 1; ar[0][i].fr = ar[0][i].fr - i + 1; ar[0][i].sc = ar[0][i].sc - i; } while (q--) { int tp; scanf("%d", &tp); if (tp == 1) { int i, l, r; scanf("%d %d %d", &i, &l, &r); i++; ar[1][i].fr = l + i; ar[1][i].sc = r + i - 1; ar[0][i].fr = l - i + 1; ar[0][i].sc = r - i; } else { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d); ll ans; if (a < c) { ans = solve1(a, b, c, d); } else { ans = solve2(a, b, c, d); } printf("%lld\n", ans); } } }

Compilation message (stderr)

timeleap.cpp:40:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
timeleap.cpp: In function 'int main()':
timeleap.cpp:41:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &q);
  ~~~~~^~~~~~~~~~~~~~~~~
timeleap.cpp:43:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &ar[0][i].fr, &ar[0][i].sc);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
timeleap.cpp:51:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &tp);
   ~~~~~^~~~~~~~~~~
timeleap.cpp:54:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d %d", &i, &l, &r);
    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
timeleap.cpp:62:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d %d %d", &a, &b, &c, &d);
    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...