列表

详情


NC21701. 约会

描述

Hang等了一年,终于,朝气蓬勃的小学妹来了,在开学当天,就成功打入协会迎新群,在Hang的魅力(死皮赖脸)之下,有个小学妹要和他面基了,小学妹说,她就在这个学校里,让Hang过去找她

假设,在二维坐标的每个点,都有一个女生,但是Hang不知道哪个是和他约会小学妹

所以他在每一个位置,都会询问这个女生(因为Hang记忆力比较差,所以走过的地方可以重复走,是不是Hang认识的小学妹

如果是Hang认识的小学妹,则他不会继续找下去,否则他会随机找一个方向找下去

如果Hang和小学妹见面了,小学妹会问Hang他走了几步到的,如果Hang说的步数一定是假的,小学妹就和moxin大佬私奔

现已知Hang的坐标(0,0),小学妹坐标(x,y),Hang回答的步数a,你能否帮小学妹判断Hang说的是否可能是真话呢?

因为Hang曾经横行霸道,被人一顿暴打,所以他现在怂的只敢斜着走(↖ ↙ ↗ ↘)斜着走,如:(0,0) -> (1,1) , (1,1) ->(0,2),(0,0)->(-1,1)


输入描述

多组数据,每组数据先有两个整数(x,y)(数据保证x,y都在int范围内)表示学妹的坐标,接下来再一个非负整数a(0<=a<=1015),表示Hang说他走了a步找到了小学妹

输出描述

如果Hang不可能找到小学妹,请输出“Not the fate”;(若Hang不可能找到小学妹,则a是无意义的)

如果Hang能找到小学妹但是通过他说的步数a不能走到小学妹所在位置,请输出“You are lying”;
如果Hang能找到小学妹并且通过他说的步数a能走到小学妹所在位置,请输出“We are together”。
"能找到小学妹"指存在一个k∈N,使得Hang走k步能到达小学妹所在位置。 

若Hang能找到小学妹,则对于能到达小学妹位置的所有可能步数k组成的集合(可以知道这个集合可能有无穷多个数k),只要a属于这个集合,则判断a能走到小学妹所在位置,反之a不能走到。


示例1

输入:

1 0 2
2 2 1
2 2 2

输出:

Not the fate
You are lying
We are together

原站题解

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

C(clang 3.9) 解法, 执行用时: 64ms, 内存消耗: 1516K, 提交时间: 2018-12-09 22:49:05

#include <stdio.h>
#include <math.h>
int main(){
	long long int x,y,a,k;
	while(~scanf("%lld %lld %lld",&x,&y,&a)){
        x=abs(x);
        y=abs(y);
        k=x>y?x:y;
		if((x+y)%2) printf("Not the fate\n");
        else if(x==0&&y==0&&a>0) printf("You are lying\n");
		else if(a<k||(k-a)%2) printf("You are lying\n");
		else printf("We are together\n");
	}
    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 311ms, 内存消耗: 1868K, 提交时间: 2018-12-17 15:22:31

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
	ll x,y,n;
	while(cin>>x>>y>>n) {
		if(abs(x-y)%2)  puts("Not the fate");
		else {
			ll t=max(abs(x),abs(y));
			if(n<t||(t-n)%2||(!x&&!y&&n)) puts("You are lying");
			else puts("We are together");
		}
	}
	return 0 ;
 }

上一题