---
# System prepended metadata

title: 改考卷
tags: [MDCPP題目題解]

---

###### tags: `MDCPP題目題解`
# 改考卷

**Author : 謝侑哲**

## 題敘

每次考完試，總是會有一些老師被抱怨改的速度太慢，每天被學生這樣煩，因此老師決定找一個方法來幫助他改考卷，正好班上有你這個會寫程式的天才，所以老師決定向你請求幫助，希望你可以幫他寫一個自動改考卷的程式。

因為班上太多GY人一直抱怨考卷改很久，所以老師決定出一張最多有10^6次方題的考卷來噁心人，而且題目每題都是有5個選項的多選題，讓你最多必須看5000000個選項才能寫完。當然你做為一介學生自然是不想寫這份考卷的，而你又剛好有撰寫改考卷程式的權力，所以自然是要透過一些方法來讓自己的高分的嘛。



計分方式如下：

全對得5分

錯一個選項得3分

錯兩個選項得1分

錯三個選項以上0分

註:沒寫到答案跟多寫答案都算錯

不過這些計分方式根本不重要，畢竟考卷可相當於你改的，因此當第一行的學生名字是"the wisest student"(你的名字)時，就把每一題都算成對的。

## 輸入說明

在題目中，第一行會顯示學生的名字

第二行會給你一個數字$N$，代表這張考卷的題目數量

接下來有$N$個要求，在要求中

第一行有一個數字$Q$是這題正確答案的數量

接下來一行會各有$Q$個字母($A$~$E$)代表本題正確答案，並以空格隔開

接著一行有一個數字$A$代表學生給出的答案數量

接下來的一行會各有$A$個字母($A$~$E$)代表學生提交的答案。並以空格隔開

## 輸出說明

請輸出該學生的分數

## 範例測資

input 1 
```
AlaAla
3
3
A B C 
2
A B
4
A C E D
2
C A
1
A
3
A B C
```
output 2
```
5
```
input 1
```
the_wisest_student
3
3
A B C 
1
A 
3
A E D
1
C 
1
A
2
A C
```
output 2
```
15
```

## Hint

附註:

String的宣告方式

string a;

這樣就宣告了一個string變數了，跟宣告int基本上一樣，簡單吧!

另外string是可以比較的，像是

"abc" == "dsf" 就會回傳 False

"abc"=="abc"就會回傳True

# 題解

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


signed main(){

//freopen("10.in","r",stdin);
//freopen("10.out","w",stdout);

string name;
cin>>name;

int N;
cin>>N;

int ans=0;
for(int i=1;i<=N;i++){
    int CA,SA;
    int a=0,b=0,c=0,d=0,e=0;
    cin>>CA;
    for(int j=1;j<=CA;j++){
        char in;
        cin>>in;
        if(in=='A') a=1;
        if(in=='B') b=1;
        if(in=='C') c=1;
        if(in=='D') d=1;
        if(in=='E') e=1;
    }
    cin>>SA;
    int score = 5;
    for(int j=1;j<=SA;j++){
        char in;
        cin>>in;
        if(in=='A'&&a==1) a=0;
        else if(in=='B'&&b==1) b=0;
        else if(in=='C'&&c==1) c=0;
        else if(in=='D'&&d==1) d=0;
        else if(in=='E'&&e==1) e=0;
        else score-=2;

    }

    score-=a*2;
    score-=b*2;
    score-=c*2;
    score-=d*2;
    score-=e*2;
    if(score<0)score=0;

    ans+= score;
}
if(name=="the_wisest_student")
cout<<N*5<<endl;
else
cout<<ans<<endl;

}

```