题解:P14574 批话哥

· · 题解

题目思路

我们用一个二维数组 a_{i,j} 表示第 i 个人第 j 道题的分数,然后对于每个输入的 v 分三种情况:

  1. v \leq la_{x,y} = 100
  2. v \geq ra_{x,y} = 0
  3. 其余情况让 a_{x,y} = v

代码

#include<bits/stdc++.h>

using namespace std;

const int N = 501;
int fen[N][N];

int main(){
    int n,m,k,l,r;
    cin>>n>>m>>k>>l>>r;
    for(int i = 1;i<=k;i++){
        int x,y,v;
        cin>>x>>y>>v;
        if(v<=l) fen[x][y] = 100;
        else if(v>=r) fen[x][y] = 0;
        else fen[x][y] = v;
    }
    for(int i = 1;i<=n;i++){
        int cnt =0 ;
        for(int j = 1;j<=m;j++) cnt+=fen[i][j];
        cout<<cnt<<" ";
    }
    return 0;
}