计蒜客 15499 阿里的新游戏 题解

来源:互联网 发布:淘宝卖家怎么联系快递 编辑:程序博客网 时间:2024/05/17 08:33

题意

阿里九游开放平台近日上架了一款新的益智类游戏——成三棋。成三棋是我国非常古老的一个双人棋类游戏,成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子。如果一条线段上的三个交叉点都被同一玩家的棋子占据的话,则称这条线段被该玩家 成三。现在,小红和小明两人在游戏平台上下棋,其中小红的棋子是黑色的。请你帮小红计算他成三的线段数。

思路

存下黑棋的横纵坐标,枚举线段进行判定

代码

#include <cstdio>int x[9],y[9];int main(){    int n,m,cnt,ans,xx,yy;    scanf("%d%d",&n,&m);    for(int i=0;i<n;i++)        scanf("%d%d",&x[i],&y[i]);    ans=0;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==-3)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==-2)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==-1)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==3)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==2)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==1)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==-3)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==-2)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==-1)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==3)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==2)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==1)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==0&&y[i]<0)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(x[i]==0&&y[i]>0)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==0&&x[i]>0)            cnt++;    if(cnt==3)        ans++;    cnt=0;    for(int i=0;i<n;i++)        if(y[i]==0&&x[i]<0)            cnt++;    if(cnt==3)        ans++;    for(int i=0;i<m;i++)        scanf("%d%d",&xx,&yy);    printf("%d\n",ans);    return 0;}
原创粉丝点击