题目略坑。
因为细节问题wa了几次。
1 #include2 #include 3 #include 4 5 using namespace std; 6 typedef __int64 LL; 7 8 9 LL ans, a[3];10 11 void solve(){12 sort(a, a + 3);13 LL sum = 0;14 for(int i = 0; i < 3; i++) sum += a[i];15 LL ans = 0;16 //discuss::17 //2+2+2+;1,2+,2+;1,1,2+;1,1,1;18 //0,2+,2+;0,1,2+;0,1,1;0,0,2+;0,0,1;0,0,0;19 if(a[0] > 1){20 ans = (sum - 6) * 6 + 15;21 }22 else if(a[0] > 0 && a[1] > 1){23 ans = (sum - 5) * 5 + 10;24 }25 else if(a[0] > 0 && a[2] > 1){26 ans = (sum - 4) * 4 + 6;27 }28 else if(a[0] > 0){29 ans = 3;30 }31 else if(a[1] > 1){32 ans = (sum - 4) * 4 + 6;33 }34 else if(a[1] > 0 && a[2] > 1){35 ans = (sum - 3) * 3 + 3;36 }37 else if(a[1] > 0){38 ans = 1;39 }40 else if(a[2] > 1){41 ans = (sum - 2) * 2 + 1;42 }43 else if(a[2] > 0){44 ans = 0;45 }46 else ans = 0;47 printf("%I64d\n", ans);48 }49 50 int main(){51 while(~scanf("%I64d%I64d%I64d", &a[0], &a[1], &a[2])) solve();52 return 0;53 }