#include <iostream>
using namespace std;
int main() {
int ans[4], n, ya[4], a = 0, b = 0;
while (cin >> ans[0] >> ans[1] >> ans[2] >> ans[3]){
cin >> n;
while (n--){
for (int m = 0; m < 4; m++){
cin >> ya[m];
}
for (int l = 0; l < 4; l++){
if (ans[l] == ya[l]){
a++;
ya[l] = -1;
continue;
}
else {
for (int k = 0; k < 4; k++){
if (ans[l] == ya[k]){
b++;
continue;
}
}
}
}
cout << a << "A" << b << "B\n";
a = 0;
b = 0;
}
}
return 0;
}
#0: 100% TLE (1s)
Killed
而且為什麼我翻之前的記錄有人說測資有空行,但也有人說沒有
我還發現有人TLE是3秒,有人的卻是1秒 : (
#include
using namespace std;
int main() {
int ans[4], n, ya[4], a = 0, b = 0;
while (cin >> ans[0] >> ans[1] >> ans[2] >> ans[3]){
cin >> n;
while (n--){
for (int m = 0; m < 4; m++){
cin >> ya[m];
}
for (int l = 0; l < 4; l++){
if (ans[l] == ya[l]){
a++;
ya[l] = -1;
continue;
}
else {
for (int k = 0; k < 4; k++){
if (ans[l] == ya[k]){
b++;
continue;
}
}
}
}
cout << a << "A" << b << "B\n";
a = 0;
b = 0;
}
}
return 0;
}
#0: 100% TLE (1s)
Killed
而且為什麼我翻之前的記錄有人說測資有空行,但也有人說沒有
我還發現有人TLE是3秒,有人的卻是1秒 : (
第一步 I/O優化
cin.tie(0);
ios_base::sync_with_stdio(false);
第二步
重新檢查邏輯
應該要新開一個陣列紀錄答案,如果有重複(例如1234和1312 or 1312和1234)要把答案紀錄和輸入資料換掉(要換成不一樣)。
參考答案
#include
using namespace std;
int main() {
int ans[4], n, ya[4], a = 0, b = 0;
while (cin >> ans[0] >> ans[1] >> ans[2] >> ans[3]){
cin >> n;
while (n--){
for (int m = 0; m < 4; m++){
cin >> ya[m];
}
for (int l = 0; l < 4; l++){
if (ans[l] == ya[l]){
a++;
ya[l] = -1;
continue;
}
else {
for (int k = 0; k < 4; k++){
if (ans[l] == ya[k]){
b++;
continue;
}
}
}
}
cout << a << "A" << b << "B\n";
a = 0;
b = 0;
}
}
return 0;
}
#0: 100% TLE (1s)
Killed
而且為什麼我翻之前的記錄有人說測資有空行,但也有人說沒有
我還發現有人TLE是3秒,有人的卻是1秒 : (
有人TLE是3秒,有人的卻是1秒
Python(確定)和java(好像有)的時間是C和C++的3倍。
#include
using namespace std;
int main() {
int ans[4], n, ya[4], a = 0, b = 0;
while (cin >> ans[0] >> ans[1] >> ans[2] >> ans[3]){
cin >> n;
while (n--){
for (int m = 0; m < 4; m++){
cin >> ya[m];
}
for (int l = 0; l < 4; l++){
if (ans[l] == ya[l]){
a++;
ya[l] = -1;
continue;
}
else {
for (int k = 0; k < 4; k++){
if (ans[l] == ya[k]){
b++;
continue;
}
}
}
}
cout << a << "A" << b << "B\n";
a = 0;
b = 0;
}
}
return 0;
}
#0: 100% TLE (1s)
Killed
而且為什麼我翻之前的記錄有人說測資有空行,但也有人說沒有
我還發現有人TLE是3秒,有人的卻是1秒 : (有人TLE是3秒,有人的卻是1秒Python(確定)和java(好像有)的時間是C和C++的3倍。
感恩,AC