某公司年会上,组织人员安排了一个小游戏来调节气氛。游戏规则如下:
某公司年会上,组织人员安排了一个小游戏来调节气氛。游戏规则如下:
输入为用空格分隔的3个正整数,依次为:参与游戏人数N、玩偶数M、小招所在位置K
输出为1个正整数,代表小招最多能够拥有的玩偶数。若没有,则输出0。
1 1 0
0
1 3 1
3
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int M = scanner.nextInt(); int K = scanner.nextInt(); int[] person = new int[N]; if (K <= 0 || N <= 0 || M <= 0||K>N) { System.out.println(0); return; } for (int i = 0; i < M; i++) { Add(person, K - 1); } System.out.println(person[K - 1]); } private static void Add(int[] person, int k) { if (k - 1 >= 0 && person[k] > person[k - 1]) { Add(person, k - 1); } else if (k + 1 < person.length && person[k] > person[k + 1]) { Add(person, k + 1); } else { person[k]++; } } }
#include <iostream> using namespace std; int main() { int n, m, k; cin >> n >> m >> k; int s = ((n - k + 1)*(n - k) >> 1) + (k * (k - 1) >> 1); if (n && (k>=1 && k<=n &&(m+s)>=max(k-1,n-k)*n) { //int s = ((n - k + 1)*(n - k) >> 1) + (k * (k - 1) >> 1); //*、+优先级大于>> for (int i = 0; i < n; i++) { if ((m + s - i) % n == 0) { cout << (m + s - i) / n << '\n'; break; } } } else cout << "0" << '\n'; return 0; }
include<bits/stdc++.h> define frp(i,a,b) for(int i = a; i <= b; i++) define clr(a,b) memset(a,b,sizeof(a))using namespace std; typedef long long lint; int n,m,k,ans = 0; inline void get_ready( ) { scanf("%d%d%d", &n,&m,&k); }
inline void solve( ) { if(k < 1 || k > n){ puts("0"); return; } if(n == 1){ printf("%d\n",m); return; } if(n == 2){ printf("%d\n",(m-1)/2+1); return; } if(k == 1 || k == n){ printf("%d\n",(m-1)/2+1); } else{ int tmp = min(k,n-k); if(tmptmp >= m){ while(tmptmp > m) tmp--; printf("%d\n",tmp); } else{ int res = k+k-1,res2 = tmp*tmp; while(res<n){ if(res2 < m){ res2+=res; tmp++; } if(res2>=m){ if(res2 == m) printf("%d\n",tmp); else printf("%d\n",tmp-1); return; } res++; } while(res2<m){ res2+=n; tmp++; if(res2>=m){ if(res2 == m) printf("%d\n",tmp); else printf("%d\n",tmp-1); } } } } }
int main( ) { get_ready( ); solve( ); return 0; }
#include<bits/stdc++.h> using namespace std; int main() { int n, m, k; cin >> n >> m >> k; int p = 0; if (n == 0 || m == 0 || k <= 0 || k > n) { p = 0; } else { p = (n * n + 2 * k * k + 2 * m - 2 * k * n - k)/(2 * n); if ((p - k + 1) < 0) { p = n - k + 1; } else if ((p - n + k) < 0) { p = k; } } cout << (p <= m ? p : m) << endl; //system("pause"); return 0; }
#include <iostream> using namespace std; int main() { int n, m, k; cin >> n >> m >> k; if (n && (k>=1 && k<=n)) { int s = ((n - k + 1)*(n - k) >> 1) + (k * (k - 1) >> 1); //*、+优先级大于>> for (int i = 0; i < n; i++) { if ((m + s - i) % n == 0) { cout << (m + s - i) / n << '\n'; break; } } } else cout << "0" << '\n'; return 0; }