您的位置:首页 > 其它

USACO 1.3 Combination Lock

2015-09-19 08:55 239 查看
#include<stdio.h>
#define GET_ABS(x) ( (x) > 0 ? (x) : -(x) )
int maxNum;
int FJCombination[4];
int masterCombination[4];
int settings[4];
int result;

int isCloseEnough(int combination[]){
int dial;
for (dial = 1; dial <= 3; dial++){
int delta = GET_ABS(settings[dial] - combination[dial]);
if (2 < delta && delta < maxNum - 2)
return 0;
}
return 1;
}

int main(){
scanf("%d", &maxNum);
int indexOfNum;
for (indexOfNum = 1; indexOfNum <= 3; indexOfNum++)
scanf("%d", &FJCombination[indexOfNum]);
for (indexOfNum = 1; indexOfNum <= 3; indexOfNum++)
scanf("%d", &masterCombination[indexOfNum]);

result = 0;
for (settings[1] = 1; settings[1] <= maxNum; settings[1]++)
for (settings[2] = 1; settings[2] <= maxNum; settings[2]++)
for (settings[3] = 1; settings[3] <= maxNum; settings[3]++)
if (isCloseEnough(FJCombination) == 1 || isCloseEnough(masterCombination) == 1)
result++;

printf("%d\n", result);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  USACO 1.3 Combination Lock