列表

详情


NC21844. Problem B. Wpremig的AH之战

描述

AHauction house,拍卖行的缩写。众所周知,为了道具流通,基本上每个网络游戏都会有拍卖行或者类似拍卖行的系统存在。

Wpremig最近喜欢上玩《XX传奇》,游戏为了吸引玩家,推出了一种"抢拍模式",在原有的拍卖行竞价基础上,增加了一条规则:只有最早竞价的两个人有资格竞价。

原本规则如下:

所有物品初始价格为0, 每次加价必须在[1,N]内,并且不存在一口价功能,只有一个价格上限M,当某次某个玩家加价后的价格大于等于M时,这个玩家就可以拍下物品,或者在48小时后还没有超出上限,那么当前出价人拍下物品。

Wpremig通过内部消息知道明天会拍卖一件神器,并且找到了一个脚本软件,能保证自己一定是第一个竞价的人,但是现在他的几个不同的消息来源,给出的物品价格是不一样的,所以他并不知道到时候神器的准确价格是多少,但是可以知道一点,另一个玩家一定不会在中途放弃。

所以Wpremig想要知道对于每种N,M的情况,自己一开始出价多少才能够保证自己拍到这件物品?

输入描述

多组数据,不超过100组。
每组数据包含两个整数N,M表示加价区间[1,N]和价格上限M,(1<=N,M<=1024)

输出描述

对于每组数据输出Wpremig所有可行的第一次加价方案,从小到大用空格隔开。若不存在可行的方案,则输出"You are loser"

示例1

输入:

4 3

输出:

3 4

原站题解

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

C(clang 3.9) 解法, 执行用时: 6ms, 内存消耗: 360K, 提交时间: 2018-12-29 13:03:12

#include<stdio.h>
int main()	
{
	int m, n,i;
	while (scanf("%d%d",&n,&m)!=EOF)
	{
		if(m%(n+1)==0)
			printf("You are loser\n");
		else if(n>=m)
		{
			for(i=m;i<n;i++)
				printf("%d ",i);
			printf("%d\n",n);
		}
		else
			printf("%d\n",m%(n+1));
    }
	return 0;
}

Python3(3.9) 解法, 执行用时: 47ms, 内存消耗: 6784K, 提交时间: 2021-04-15 14:25:31

import sys
for line in sys.stdin:
    n, m = map(int,line.split())
    if m <= n:
        lst = [str(i) for i in range(m,n+1)]
        print(' '.join(lst))
    elif m % (n+1) == 0:
        print("You are loser")
    else:
        print(m % (n+1))

C++14(g++5.4) 解法, 执行用时: 6ms, 内存消耗: 484K, 提交时间: 2018-12-22 14:25:53

#include<iostream>
using namespace std;
int main(){
	int m,n;
	while(cin>>n>>m){
	if(n>=m){
	  for(;n>=m;m++)
	  cout<<m<<" ";
	}
	else{
	  if(m%(n+1)==0)
	    cout<<"You are loser";
	  else
	    cout<<m%(n+1);
    }cout<<endl;}
    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 7ms, 内存消耗: 476K, 提交时间: 2019-01-04 16:21:19

#include<stdio.h>
int main()
{
	int N,M,i;
	while(~scanf("%d%d",&N,&M)){
		if(N>=M)
		{
		for(i=M;i<=N;i++)
			printf("%d ",i);
		printf("\n");}
		else if(M%(N+1)==0)
		printf("You are loser\n");
		else printf("%d\n",M%(N+1));
	}return 0;
}

上一题