#27740: 只輸出8931行(輸出短少)


hth960116@gmail.com (黃庭晧)

學校 : 不指定學校
編號 : 150956
來源 : [118.170.109.125]
最後登入時間 :
2021-04-21 20:24:20
a291. nAnB problem | From: [111.83.83.86] | 發表日期 : 2021-10-27 23:01

#include<iostream>

#include<vector>

using namespace std;

int main(){

int a, b, tmp[4];

cin >> tmp[0] >> tmp[1] >> tmp[2] >> tmp[3];

int n;

cin >> n;

while(n--){

a = 0;

b = 0;

vector<int> cor(4);

vector<int> ps(4);

for(int i = 0; i < 4; i++){

cin >> ps[i];

cor[i] = tmp[i];

for(int i = 0; i < cor.size(); i++){

if(cor[i] == ps[i]){

a++;

cor.erase(cor.begin() + i);

ps.erase(ps.begin() + i);

i--;

}

}

for(int i = 0; i < cor.size(); i++){

for(int j = 0; j < ps.size(); j++){

if (cor[i] == ps[j]){

b++;

cor.erase(cor.begin() + i);

ps.erase(ps.begin() + j);

i--;

break;

}

}

cout << a << "A" << b << "B" << endl;

}

return 0;

}

其實不太懂程式怎麼結束的,求大神指點

 
#27741: Re:只輸出8931行(輸出短少)


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [111.248.111.135]
最後登入時間 :
2023-04-01 22:41:13
a291. nAnB problem | From: [36.229.83.24] | 發表日期 : 2021-10-27 23:51

多筆測資



 
#27747: Re:只輸出8931行(輸出短少)


hth960116@gmail.com (黃庭晧)

學校 : 不指定學校
編號 : 150956
來源 : [118.170.109.125]
最後登入時間 :
2021-04-21 20:24:20
a291. nAnB problem | From: [111.83.83.86] | 發表日期 : 2021-10-28 18:08

多筆測資



所以要用while(cin >> ps[0] >> ps[1]......囉

 
#27748: Re:只輸出8931行(輸出短少)


linlincaleb@gmail.com (臨末之頌)

學校 : 新北市立板橋高級中學
編號 : 132772
來源 : [111.248.111.135]
最後登入時間 :
2023-04-01 22:41:13
a291. nAnB problem | From: [36.229.83.24] | 發表日期 : 2021-10-28 18:20

多筆測資



所以要用while(cin >> ps[0] >> ps[1]......囉



 
#27755: Re:只輸出8931行(輸出短少)


hth960116@gmail.com (黃庭晧)

學校 : 不指定學校
編號 : 150956
來源 : [118.170.109.125]
最後登入時間 :
2021-04-21 20:24:20
a291. nAnB problem | From: [111.83.83.86] | 發表日期 : 2021-10-28 23:18

多筆測資



所以要用while(cin >> ps[0] >> ps[1]......囉



 

#include<iostream>

#include<vector>

using namespace std;

int main(){

int a, b, tmp[4], n;

while(cin >> tmp[0] >> tmp[1] >> tmp[2] >> tmp[3]){

cin >> n;

while(n--){

a = 0;

b = 0;

vector<int> cor(4);

vector<int> ps(4);

for(int i = 0; i < 4; i++){

cin >> ps[i];

cor[i] = tmp[i];

for(int i = 0; i < cor.size(); i++){

if(cor[i] == ps[i]){

a++;

cor.erase(cor.begin() + i);

ps.erase(ps.begin() + i);

i--;

}

}

for(int i = 0; i < cor.size(); i++){

for(int j = 0; j < ps.size(); j++){

if (cor[i] == ps[j]){

b++;

cor.erase(cor.begin() + i);

ps.erase(ps.begin() + j);

i--;

break;

}

}

cout << a << "A" << b << "B" << endl;

}

}

return 0;

}

很好現在TLE了,結構上有沒有可能在優化呢

 
ZeroJudge Forum