题解:P14574 批话哥

· · 题解

PROBLEM

题目大意

给出 n,m,k,l,r,接下来 k 行,输入 x,y,vv \le l,则 xy 题获得 100 分,若 v \ge rxy 题获得 0 分,如果都不符合,则 xy 题获得 v 分。最后请你给出这 n 个人的分数。

解题思路

用数组存储每一个人的分数,在输入时判断即可。

AC代码

#include<bits/stdc++.h>
using namespace std;

const int N=2.5e5+20;

int n,m,k,l,r;
int x[N],y[N],v[N];
int mp[N];

int main()
{
    cin>>n>>m>>k>>l>>r;
    for(int i=1;i<=k;i++)
    {
        cin>>x[i]>>y[i]>>v[i];
        if(v[i]<=l)mp[x[i]]+=100;
        else if(v[i]>=r)mp[x[i]]+=0;
        else mp[x[i]]+=v[i];   
    }
    for(int i=1;i<=n;i++)cout<<mp[i]<<' ';
}