d984.
棄保效應
--
板橋高中教學題
| From: [140.113.136.221] |
發表日期
:
2024-01-04 20:55
#include <stdio.h>
void getName(int index){
switch(index){
case 0:
printf("A\n");
break;
case 1:
printf("B\n");
break;
case 2:
printf("C\n");
break;
}
}
int main(){
long long int arr[3];
int index_1=-1, index_2=-1, index_3=-1;
while(scanf("%lld %lld %lld", &arr[0], &arr[1], &arr[2]) != EOF){
for (int i=0; i<3; i++){
int rank = 1;
for (int j=0; j<3; j++){
if (i == j){
continue;
}
else {
if (arr[i] < arr[j]){
rank++;
}
}
}
if (rank == 1){
index_1 = i;
}
else if (rank == 2){
index_2 = i;
}
else if (rank == 3){
index_3 = i;
}
}
if ((index_3 == -1) && (arr[index_2]*2 > arr[index_1])){
getName(index_2);
}
else if ((index_3 == -1) && (arr[index_2]*2 < arr[index_1])){
getName(index_1);
}
else if ((index_3 != -1) && (arr[index_2] + arr[index_3] > arr[index_1])){
getName(index_2);
}
else if ((index_3 != -1) && (arr[index_2] + arr[index_3] < arr[index_1])){
getName(index_1);
}
}
}
真的找不出來哪裡有錯@@,後面那大串if else寫的很複雜其實只是在考慮如果有兩個數字相同的情形(但我這邊只考慮第二名跟第三名數字相同)
不知道是不是要連同第一名也有可能數字相同一起考慮
但這樣輸出要輸出什麼..
我也試過完全不考慮數字重複的問題,但結果一樣WA