牛客3402F-參賽-思維

鏈接:https://ac.nowcoder.com/acm/contest/3402/F
來源:牛客網

題目描述:

jx隊長半夜@小胖:你快出一道簽到題呀,簡單點的,不行打你啊。小胖嚇得趕緊下牀想題,邊想邊和jx隊長吹水,想起了參加acm的種種經歷。有感而發和jx隊長說了想法之後,jx隊長:你這什麼題意,不行啊太難了,我來改。一頓爭辯之後小胖折服了,內心:jx隊長牛逼。jx隊長:睡吧睡吧,找時間請你喝奶茶。

衆所周知:icpc賽制中,一支隊伍由三個隊員和一個教練組成,一個教練可以兼任多個隊伍的教練;天梯賽賽制中,一支隊伍由十個隊員組隊和一個教練組成,一個教練可以兼任多個隊伍的教練;同時,一個隊員可以同時參與兩種比賽,但不能同時參與同一比賽的不同隊伍。

如果參賽隊的Q羣裏教練和隊員的人數共有n人,參賽隊是否剛好所有人都能同時組成隊伍參賽?

輸入描述:

多測試用例
每組測試用例一行,包括一個整數n(1≤n≤300),表示羣內的人數有n人

輸出描述:

對於每組測試用例
如果所有人都能同時參加兩種比賽,請輸出All;
如果所有人都能同時參加icpc但不能同時參加天梯賽,請輸出First;
如果所有人都能同時參加天梯賽不能同時參加icpc,請輸出Second;
否則請輸出No。

輸入樣例:

11
7
9
10
100

輸出樣例:

All
First
No
First
First

核心思想:

對於某個賽事,假設有n人,每隊k個隊員+1位教練,隊員只能在一支隊伍,教練可以執教多支隊伍,所以教練的數量範圍爲[1,隊伍數量]
如果n%k==0,則拿出k人做教練,n-k爲隊員數(隊伍數爲n/k-1)。
否則,n%k爲教練數,n-n%k爲隊員數(隊伍數爲n/k)。

代碼如下:

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
bool fun(int n,int k)
{
	if(n%k==0&&n/k-1>=k)
		return 1;
	if(n%k>0&&n/k>=n%k)
		return 1;
	return 0;
}
int main()
{
	int n;
	while(~scanf("%d",&n))
	{
		int a=fun(n,3);
		int b=fun(n,10);
		if(a&b) printf("All\n");
		else if(a) printf("First\n");
		else if(b) printf("Second\n");
		else printf("No\n");
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章