记录编号 358214 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 2569.[東方] 博丽灵梦 梦想妙珠 最终得分 100
用户昵称 喵喵喵 是否通过 通过
代码语言 C++ 运行时间 0.412 s
提交时间 2016-12-14 21:53:07 内存使用 6.07 MiB
显示代码纯文本
#include <cstdio>
#define maxn 200010

int n, m, a[maxn], c[maxn], ans[maxn];
int tot, head[maxn], to[maxn], next[maxn], cost[maxn], num[maxn];

void add(int u, int v, int w, int k){
	tot++;
	to[tot] = v;
	num[tot] = k;
	cost[tot] = w;
	next[tot] = head[u];
	head[u] = tot;
}

void in(int &x){
	static int ch;
	while(ch = getchar(), ch < 48 || ch > 57); x = ch - 48;
	while(ch = getchar(), ch > 47 && ch < 58)  x = x * 10 + ch - 48;
}

int main() {
	freopen("mengxiangmiaozhu.in", "r", stdin);
	freopen("mengxiangmiaozhu.out", "w", stdout);
	in(n);
	int i, j, l, r, p;
	for(i = 1;i <= n;i ++)
		in(a[i]);
	in(m);
	for(i = 1;i <= m;i ++) {
		in(l), in(r), in(p);
		add(l - 1, p, -1, i);
		add(r, p, 1, i);
	}
	for(i = 1;i <= n;i ++) {
		c[a[i]] ++;
		for(j = head[i];j;j = next[j]) 
			ans[num[j]] += cost[j] * c[to[j]];
	}
	for(i = 1;i <= m;i ++)
		printf("%d\n", ans[i]);
	return 0;
}