列表

详情


NC54117. Maximum team

描述

马上要开始新一轮的acm比赛了,刘会长和集训队的队员们正在各自加紧训练中。但是,在训练的同时也不能忘记带动协会的新人(也就是19级的新生)参加比赛,于是,在分队伍之前,刘会长对队员们提出了一些要求,即每个队伍组成规则必须是:

1.每个队伍由三个人组成。
2.每个队伍至少有一人是集训队员。

而且,刘会长想,为了提高拿奖的几率,能凑成的队伍越多越好。现在,已知有n个经验丰富的集训队员和m个刚参加协会的懵懂新生,现在请你来告诉刘会长,最多能凑出多少队伍。

输入描述

输入数据包含多组。输入仅一行,包括两个整数n和m(0<=n,m<=10^12),n代表集训队员数量,m代表新生数量。

输出描述

输出仅一行,输出满足条件的最多的队伍数。

示例1

输入:

1 2

输出:

1

示例2

输入:

0 3

输出:

0

原站题解

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

C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 344K, 提交时间: 2019-10-15 15:26:54

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n, m;
    while(~scanf("%lld%lld", &n, &m)) {
        if(n*2 >= m) printf("%lld\n", (n+m)/3);
        else {
            printf("%lld\n", n);
        }
    }
    return 0;
}

C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2020-10-20 14:45:58

#include<stdio.h>
int main(){
	long n,m,sum;
	while((scanf("%ld %ld",&n,&m))!=EOF){
		sum=n+m;
		if(n<1)    printf("0\n");
		else{
		if(n>=m || m/2<n)   printf("%ld\n",sum/3);
		if(n<m && m/2>=n)	 printf("%ld\n",n);
		}
	}
	return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 352K, 提交时间: 2020-01-12 23:35:12

#include <iostream>
using namespace std ;
int main(){
	long long n,m;
	while(cin>>n>>m){
		if(m<=2*n)
		cout<<(m+n)/3<<endl;
		else 
		cout<<n<<endl;
    }
	return 0;
}

Python3(3.5.2) 解法, 执行用时: 33ms, 内存消耗: 3700K, 提交时间: 2019-10-21 09:13:05

while 1:
    try:
        n, m = map(int, input().split())
        print(n if m >= 2 * n else (m + n) // 3)
    except:
        break

上一题