#38934: 已經開long long,也考慮棄保前數字可能相同情形,測試過但實際WA


yupingw95@gmail.com (王裕萍)

學校 : 不指定學校
編號 : 256789
來源 : [140.113.136.221]
最後登入時間 :
2024-01-04 21:29:36
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
 
#38945: Re: 已經開long long,也考慮棄保前數字可能相同情形,測試過但實際WA


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
d984. 棄保效應 -- 板橋高中教學題 | From: [101.137.70.105] | 發表日期 : 2024-01-06 10:10

 
int index_1=-1, index_2=-1, index_3=-1;
 


其實我看不懂你的程式碼,不過這行放到迴圈裡面就AC了

 
ZeroJudge Forum