列表

详情


NC24631. PJ的崛起

描述

由于PJ之前在一场决斗中败在对手的枪下,失去了自己的爱人。

PJ觉得自己不能就这么认输,于是和dd再次约定在一个n*m的街区决斗,只能横着或竖着移动和射击。

自信的dd让PJ先行动,每次行动开枪或移动1到d单位的距离,如果在移动的途中和另一个人同行或同列也会输掉这场决斗。

输入描述

第1行一个数t,表示t个样例
每个样例中,第一行三个数字n,m,d
第2行四个数字,x1,y1,x2,y2,表示dd和pj的坐标
1<=t<=10,1<=n<=500,1<=m<=500,1<=d<=100。

输出描述

如果pj能赢输出"win",否则输出"lose"

示例1

输入:

1
3 3 2
2 2 3 3

输出:

lose

说明:

第一步pj只能移动到(2,3),(1,3),(3,2),(3,1),移动到(3,2)和(2,3)时,下一步会被dd射击输掉决斗,移动到(1,3)和(3,1)时在途中和dd同行或同列从而输掉决斗。

示例2

输入:

1
3 3 1
2 2 2 3

输出:

win

说明:

直接射击

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 5ms, 内存消耗: 376K, 提交时间: 2019-10-08 21:26:51

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--){
    int n,m,d;
    cin>>n>>m>>d;
    int x1,x2,y1,y2,x,y;
    cin>>x1>>y1>>x2>>y2;
    x=abs(x1-x2);
    y=abs(y1-y2);
    if(abs(x-y)%(d+1))
        cout<<"win"<<endl;
    else
        cout<<"lose"<<endl;
    }
    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 488K, 提交时间: 2019-04-20 19:43:10

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n,m,q;
		int a,b,c,d;
		cin>>n>>m>>q;
		cin>>a>>b>>c>>d;
		if(abs(c-a)%(q+1)==abs(b-d)%(q+1)) printf("lose\n");
		else printf("win\n");
	}
	return 0;
}

上一题