Submission #17590

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
175902016-01-01 06:22:53QwazWeighting stones (IZhO11_stones)C++14
100 / 100
48 ms5180 KiB
#include <cstdio>
#include <algorithm>
using namespace std;
const int GAP = 131072;
struct node {
int top1, bot1, top2, bot2;
void merge(node &l, node &r) {
//1 covers 2
int delta1 = min(r.top1, l.bot2);
top1 = l.top1 + r.top1 - delta1;
bot2 = l.bot2 + r.bot2 - delta1;
//2 covers 1
int delta2 = min(r.top2, l.bot1);
top2 = l.top2 + r.top2 - delta2;
bot1 = l.bot1 + r.bot1 - delta2;
}
};
int n;
node tree[GAP*2];
void update(int index) {
index >>= 1;
while (index) {
tree[index].merge(tree[index*2], tree[index*2 + 1]);
index >>= 1;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...