1061. 判断题(15)

来源:互联网 发布:pcb电路图设计软件 编辑:程序博客网 时间:2024/06/05 00:32

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

输入格式:

输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量。第二行给出M个不超过5的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0代表“非”,1代表“是”。随后N行,每行给出一个学生的解答。数字间均以空格分隔。

输出格式:

按照输入的顺序输出每个学生的得分,每个分数占一行。

输入样例:
3 6
2 1 3 3 4 5
0 0 1 0 1 1
0 1 1 0 0 1
1 0 1 0 1 0
1 1 0 0 1 1
输出样例:
13
11
12

//Java代码,内存超限:import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {    public static void main(String[] args) {        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));        try {            String casString = reader.readLine();            int n = Integer.parseInt(casString.split(" ")[0]);            int m = Integer.parseInt(casString.split(" ")[1]);            int[] val = new int[m];            int[] flagval = new int[m];            casString = reader.readLine();            for (int i = 0; i < m; i++) {                val[i] = Integer.parseInt(casString.split(" ")[i]);            }            casString = reader.readLine();            for (int i = 0; i < m; i++) {                flagval[i] = Integer.parseInt(casString.split(" ")[i]);            }            //every test cas, then output            for (int i = 0; i < n; i++) {                casString = reader.readLine();                int sum = 0;                for (int j = 0; j < m; j++) {                    if (Integer.parseInt(casString.split(" ")[j]) == flagval[j]) sum += val[j];                }                System.out.println(sum);            }            reader.close();        } catch (Exception e) {            e.printStackTrace();        }    }}
//C++代码,很稳:#include <bits/stdc++.h>using namespace std;const int maxn = 100+5;int main(){    int n, m;    int val[maxn];    int flagval[maxn];    scanf("%d %d", &n, &m);    for (int i = 0; i < m; i++) scanf("%d", &val[i]);    for (int i = 0; i < m; i++) scanf("%d", &flagval[i]);    for (int i = 0; i < n; i++) {        int sum = 0;        int k;        for (int j = 0; j < m; j++) {            scanf("%d", &k);            if (k == flagval[j]) sum += val[j];        }        printf("%d\n", sum);    }    return 0;}
原创粉丝点击