Submission #122519

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1225192019-06-28 13:51:52abacabaStreet Lamps (APIO19_street_lamps)C++14
100 / 100
1721 ms200512 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 15;
int n, q, fenw[N], a[N];
struct node {
node *l, *r;
int val, add, pr, key;
node() : val(0), add(0), pr(0), l(NULL), r(NULL) {}
node(int key) : key(key), val(0), add(0), pr(0), l(NULL), r(NULL) {
pr = (int)rand() * rand();
}
};
struct query {
int type, l, r;
} qs[N];
struct upd {
int l, r, val;
upd(int l, int r, int val) : l(l), r(r), val(val) {}
};
typedef node* pnode;
void push(pnode &t) {
if(t) {
if(t->l) {
t->l->add += t->add;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

street_lamps.cpp: In constructor 'node::node()':
street_lamps.cpp:9:16: warning: 'node::pr' will be initialized after [-Wreorder]
  int val, add, pr, key;
                ^~
street_lamps.cpp:8:8: warning:   'node* node::l' [-Wreorder]
  node *l, *r;
        ^
street_lamps.cpp:10:2: warning:   when initialized here [-Wreorder]
  node() : val(0), add(0), pr(0), l(NULL), r(NULL) {}
  ^~~~
street_lamps.cpp: In constructor 'node::node(int)':
street_lamps.cpp:9:20: warning: 'node::key' will be initialized after [-Wreorder]
  int val, add, pr, key;
                    ^~~
street_lamps.cpp:9:6: warning:   'int node::val' [-Wreorder]
  int val, add, pr, key;
      ^~~
street_lamps.cpp:11:2: warning:   when initialized here [-Wreorder]
  node(int key) : key(key), val(0), add(0), pr(0), l(NULL), r(NULL) {
  ^~~~
street_lamps.cpp:9:16: warning: 'node::pr' will be initialized after [-Wreorder]
  int val, add, pr, key;
                ^~
street_lamps.cpp:8:8: warning:   'node* node::l' [-Wreorder]
  node *l, *r;
        ^
street_lamps.cpp:11:2: warning:   when initialized here [-Wreorder]
  node(int key) : key(key), val(0), add(0), pr(0), l(NULL), r(NULL) {
  ^~~~
street_lamps.cpp: In function 'int getleft(int)':
street_lamps.cpp:92:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
street_lamps.cpp: In function 'int getright(int)':
street_lamps.cpp:106:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
street_lamps.cpp: In function 'void multiupdate(int, int, int, int, int, int, int, int)':
street_lamps.cpp:150:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int mid = tl + tr >> 1;
            ~~~^~~~
street_lamps.cpp: In function 'void update(int, int, int, int, pnode)':
street_lamps.cpp:160:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int mid = tl + tr >> 1;
            ~~~^~~~
street_lamps.cpp: In function 'int get(int, int, int, int, int)':
street_lamps.cpp:180:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int mid = tl + tr >> 1;
            ~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...