從零起步看算法(第十二天 4.17)
題外話:昨晚想了一些其他的事,有些生活的殘酷你註定要去旁觀,而無法避免。傷害,或許是一種宿命,你能做的就是讓悲痛成爲財富而已。
//q13 HZF 愛鬥牛
思路很簡單的一道題,但注意的知識點還是有的。
1.對 unique(a,a+n)的深入認識,只是隱藏了原來的數組的相同的值,改變了順序而已
https://blog.csdn.net/tomorrowtodie/article/details/51907471
2.對於情況少的判斷,枚舉法很有效。
3.對題意細節的理解,對牌類遊戲題型的小積累,小主意。
貼代碼:
//q13 HZF 愛鬥牛
#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
bool is_three(int a[]){
if((a[0]+a[1]+a[2])%10==0)return true;
if((a[0]+a[1]+a[3])%10==0)return true;
if((a[0]+a[1]+a[4])%10==0)return true;
if((a[0]+a[2]+a[3])%10==0)return true;
if((a[0]+a[2]+a[4])%10==0)return true;
if((a[0]+a[3]+a[4])%10==0)return true;
if((a[1]+a[2]+a[3])%10==0)return true;
if((a[1]+a[2]+a[4])%10==0)return true;
if((a[1]+a[3]+a[4])%10==0)return true;
if((a[2]+a[3]+a[4])%10==0)return true;
else return false;
}
int main(){
int a[5]={0};
int sum=0;
for(int i=0;i<5;i++){
cin>>a[i];
if(a[i]==11)a[i]=10;
if(a[i]==12)a[i]=10;
if(a[i]==13)a[i]=10;
sum+=a[i];
}
sort(a,a+5);
int k=unique(a,a+5)-a;
if(k<=2&&a[1]==a[2]&&a[2]==a[3]){
cout<<"quadra bomb orz"<<endl;
return 0;
}
if(k<=2&&a[0]==a[2]&&a[2]==a[3]){
cout<<"quadra bomb orz"<<endl;
return 0;
}
if(a[4]<5&&sum<=10){
cout<<"penta calf"<<endl;
return 0;
}
if(is_three(a)&&sum%10==0){
cout<<"you can you up"<<endl;
return 0;
}
if(is_three(a)){
cout<<"too young too simple:calf "<<sum%10<<endl;
return 0;
}
else
cout<<"gg"<<endl;
return 0;
}