| 记录编号 |
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;
}