Submission #865875

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8658752023-10-25 01:42:50LittleOrangeBitaro, who Leaps through Time (JOI19_timeleap)C++17
100 / 100
711 ms156792 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
struct obj{
ll l0,r0,l1,r1,c,m0,m1;
obj(ll a,ll b, ll c, ll d, ll e, ll f, ll g):l0(a),r0(b),l1(c),r1(d),c(e),m0(f),m1(g){}
obj(ll l, ll r):l0(l),r0(r-1),l1(l+1),r1(r),c(0),m0(l),m1(r-1){}
obj():l0(0),r0(0),l1(0),r1(0),c(0),m0(0),m1(0){}
ll cal(ll a, ll b) const{
ll ans = 0;
a = max(a,l0);
if (a>r0){
ans += a-r0;
a = r0;
}
if (l1==r1){
if (a<=m0) ans += c;
else ans += c + a-m0;
if (b<l1) ans += l1-b;
}else{
if (a>=m1) ans += a-m1;
ll ot = max(min(a,m1),m0)-m0+l1;
if (b<ot) ans += ot-b;
}
return ans;
}
obj operator+(const obj &o) const{
if (l1==r1){
if (o.l1==o.r1){
return obj(l0,r0,o.l1,o.r1,c+o.cal(l1+0,o.l1),m0,m1);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

timeleap.cpp: In constructor 'segtree::segtree(ll)':
timeleap.cpp:77:8: warning: 'segtree::n' will be initialized after [-Wreorder]
   77 |     ll n;
      |        ^
timeleap.cpp:76:17: warning:   'std::vector<obj> segtree::a' [-Wreorder]
   76 |     vector<obj> a;
      |                 ^
timeleap.cpp:78:5: warning:   when initialized here [-Wreorder]
   78 |     segtree(ll N):n(N),a(N<<2){}
      |     ^~~~~~~
timeleap.cpp: In member function 'void segtree::set(ll, ll, ll, ll, obj)':
timeleap.cpp:82:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   82 |             ll m = l+r>>1;
      |                    ~^~
timeleap.cpp: In member function 'obj segtree::query(ll, ll, ll, ll, ll)':
timeleap.cpp:91:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   91 |             ll m = l+r>>1;
      |                    ~^~
timeleap.cpp: In function 'int main()':
timeleap.cpp:121:16: warning: unused variable 't' [-Wunused-variable]
  121 |             ll t = b;
      |                ^
timeleap.cpp:122:16: warning: unused variable 'cur' [-Wunused-variable]
  122 |             ll cur = a;
      |                ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...