为什么才60分啊,没找到哪里错了
查看原帖
为什么才60分啊,没找到哪里错了
684890
Rhss楼主2022/11/4 02:00
#include <iostream>
#include <unordered_map>
using namespace std;
int n;
//先列出前0-29所需要的木棒
int a[30] = {6,2,5,5,4,5,6,3,7,6,8,4,7,7,6,7,8,5,9,8,11,7,10,10,9,10,11,8,12,11};
int ans = 0;
int main(){
	unordered_map<int,int> m;
	cin>>n;
	for(int i = 0;i<30;++i){
		if(a[i]>n) continue;
		for(int j = 0;j<30;++j){
			if(a[i]+a[j]>n) continue;
			for(int k = 0;k<30;++k){
				if(a[i]+a[j]+a[k] + 4==n&&i+j==k){
					//调试代码
//					cout<<i<<'+'<<j<<'='<<k<<endl;
//					cout<<"消耗木棒"<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<4<<endl;
					if( i == j ){
						//A+A = C 只计算一次
						if(m[i]==1){
							continue;
						}
						else{
							m[i] = 1;
						}
					}
					ans++;
				}
			}
		}
	}
	cout<<ans;
	return 0;
}
2022/11/4 02:00
加载中...