Submission #116150

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1161502019-06-11 01:26:04RezwanArefin01Werewolf (IOI18_werewolf)C++17
100 / 100
1732 ms169324 KiB
#include <bits/stdc++.h>
#include "werewolf.h"
using namespace std;
typedef vector<int> vi;
typedef vector<vi> vvi;
const int N = 2e5 + 10;
vi adj[N], t[N << 2];
int n, p[N], idx, vert[N];
void build(int node, int l, int r, vi &in) {
if(l == r) {
t[node].push_back(in[vert[l]]);
return;
}
int m = l + r >> 1;
build(node << 1, l, m, in);
build(node << 1 | 1, m + 1, r, in);
merge(t[node << 1].begin(), t[node << 1].end(),
t[node << 1 | 1].begin(), t[node << 1 | 1].end(),
back_inserter(t[node]));
}
bool query(int node, int l, int r, int i, int j, int x, int y) {
if(r < i || l > j) return 0;
if(i <= l && r <= j) {
vi &v = t[node];
auto L = lower_bound(v.begin(), v.end(), x);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

werewolf.cpp: In function 'void build(int, int, int, vi&)':
werewolf.cpp:17:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int m = l + r >> 1; 
             ~~^~~
werewolf.cpp: In function 'bool query(int, int, int, int, int, int, int)':
werewolf.cpp:34:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int m = l + r >> 1; 
             ~~^~~
werewolf.cpp: In function 'vi check_validity(int, vi, vi, vi, vi, vi, vi)':
werewolf.cpp:84:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < X.size(); ++i) {
                    ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...