답안 #1099127

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1099127 2024-10-10T15:29:15 Z Nurislam Examination (JOI19_examination) C++17
0 / 100
100 ms 16212 KB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define int long long
template <class F, class _S>
bool chmin(F &u, const _S &v){
	bool flag = false;
	if ( u > v ){
		u = v; flag |= true;
	}
	return flag;
}

template <class F, class _S>
bool chmax(F &u, const _S &v){
	bool flag = false;
	if ( u < v ){
		u = v; flag |= true;
	}
	return flag;
}

const int N = (1<<18) +1, inf = 1e18+200;
//int mod = 998244353;
//int mod = 1000000007;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define rnd(l, r) uniform_int_distribution <int> (l, r)(rng)

struct segtree{
	vector<int> t;
	
	segtree(){
		t.resize(N*4);
	};
	
	void upd(int ps, int i = 1, int l = 1, int r = N){
		if(l == r){
			t[i]++;
			return;
		}
		int m = (l+r)>>1;
		if(ps <= m)upd(ps, i*2, l, m);
		else upd(ps, i*2+1, m+1, r);
		t[i] = t[i*2] + t[i*2+1];
	};
	
	int get(int tl, int tr, int i = 1, int l = 1, int r = N){
		if(l > tr || r < tl)return 0;
		if(tl <= l && r <= tr)return t[i];
		int m = (l+r)>>1;
		return get(tl, tr, i*2, l, m)+get(tl, tr, i*2+1, m+1, r);
	};
};
void solve(int n, int q, vector<array<int,2>> &v, vector<array<int,3>> &que){
	vector<int> ans(q);
	int it = 0;
	segtree t;
	for(int i = 0; i < q; i++){
		int a = que[i][0], b = que[i][1], id = que[i][2];
		while(it < n && v[it][0] >= a){
			t.upd(v[it][1]);
			it++;
		}
		ans[id] = t.get(b, N);
	}
	for(int i:ans)cout << i<< ' ';
	cout << '\n';
	
}
signed main(){
	int n, q;
	cin >> n >> q;
	vector<array<int,2>> v(n);
	for(auto &[i, j]:v)cin >> i >> j;
	vector<array<int,3>> que(q);
	int it = 0;
	for(auto &[i, j, k]:que){
		cin >> i >> j >> k;
		k = it;it++;
	}
	solve(n, q, v, que);
	
	
	
	
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 8540 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 100 ms 16212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 100 ms 16212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 8540 KB Output isn't correct
2 Halted 0 ms 0 KB -