题解:P14574 批话哥

· · 题解

思路

我们使用一个二维数组 p 记录每个人每题的实际分数。

然后按题意模拟即可,细节看代码注释。

代码

#include<bits/stdc++.h>
#define f(n) for(int i=1;i<=n;i++)
#define int long long
#define endl "\n" 
#define IOS cin.tie(0),cout.tie(0),ios::sync_with_stdio(0)
using namespace std;
int n,m,k,l,r,x,y,v,p[505][505];//默认都为0分,符合题面
signed main(){
    IOS;cin>>n>>m>>k>>l>>r;
    f(k){
        cin>>x>>y>>v;
        if(v<=l)p[x][y]=100;//P话哥,实为100分 
        else if(v>=r)p[x][y]=0;//实为0分
        else p[x][y]=v;//实为v分 
    }
    f(n)for(int j=1;j<=m;j++)p[i][0]+=p[i][j];//计算每个人的总分 
    f(n)cout<<p[i][0]<<" "; 
    return 0;
} 

题外话

我们机房有个人的简历居然在这题题目背景上。