题目链接:http://codeforces.com/contest/765/problem/C 题意:有两个选手打乒乓球,告诉你达到k分就算一局结束,比分置零,现在你知道第一个选手总共拿了a分,第二个选手拿了b分
题目链接:http://codeforces.com/contest/765/problem/C
题意:有两个选手打乒乓球,告诉你达到k分就算一局结束,比分置零,现在你知道第一个选手总共拿了a分,第二个选手拿了b分,问你他们最大打了几局,如果不合法则输出-1
解析:首先要尽可能的多大,那么肯定是把手头上的分尽可能变成胜局,也就ans = a/k+b/k,因为假设第一个人赢了x局,他剩下的分数是a-kx,由于他会输给第二个人,那么这些分也就合理解释了,但是如果a不能整除k,而b的分数达不到k,那这就是不合法了,同理对于第二个人也是这样的
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+100;
char a[1005];
int vis[maxn];
int main()
{
int k,a,b;
scanf("%d %d %d",&k,&a,&b);
int t1 = a/k;
int t2 = b/k;
if(t1==0 && b%k)
puts("-1");
else if(t2==0 && a%k)
puts("-1");
else
printf("%d\n",t1+t2);
return 0;
}