P1002 过河卒

来源:互联网 发布:mac管理员变普通用户 编辑:程序博客网 时间:2024/06/05 06:47

P1002 过河卒

题目描述

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。

棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过20的整数),同样马的位置坐标是需要给出的。

现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

输入输出格式

输入格式:

一行四个数据,分别表示B点坐标和马的坐标。

输出格式:

一个数据,表示所有的路径条数。

输入输出样例

输入样例#1:
6 6 3 3
输出样例#1:
6

说明

结果可能很大!


#include<iostream>#include<algorithm>#define N 51 using namespace std;int sn[N];int main(){    int n,l,r,s = 0,a,b; //l为下界,r为上界     cin>>n;    for(int i = 0;i < n;i ++){        cin>>sn[i];        s += sn[i];    }    cin>>l>>r;    if (s < n * l || s > n * r){        cout<<"-1";        return 0;    }    else{        a = b = 0;        for(int i = 0;i < n;i ++){            if (sn[i] < l)                a += l - sn[i];            else if (sn[i] > r)                b += sn[i] - r;        }    }    cout<<(a > b ? a : b);    return 0;}


0 0
原创粉丝点击