#include <iostream>
using namespace std;
typedef long long ll;
ll num[10], ans = 0LL;
void input()
{
for (int i = 1; i <= 6; i++)
{
scanf("%lld", &num[i]);
if (num[i] < 0LL)
{
num[i] = 0LL;
}
}
}
void solveSix()
{
ans += num[6];
}
void solveFive()
{
ans += num[5];
num[1] -= (num[5] * 11LL);
}
void solveFour()
{
ans += num[4];
num[2] -= (num[4] * 5LL);
}
void solveThree()
{
ans += ((num[3] + 3LL) / 4LL);
num[3] = num[3] % 4LL;
switch (num[3])
{
case 0LL:
break;
case 1LL:
num[2] -= (5LL);
num[1] -= (7LL);
break;
case 2LL:
num[2] -= (3LL);
num[1] -= (6LL);
break;
case 3LL:
num[2] -= (1);
num[1] -= (5LL);
break;
default:
break;
}
}
void solveTwo()
{
if (num[2] < 0LL)
{
num[1] += (num[2] * 4LL);
}
else if (num[2] > 0)
{
ans += ((num[2] + 8LL) / 9LL);
num[2] = num[2] % 9LL;
switch (num[2])
{
case 0:
break;
case 1:
num[1] -= 32LL;
break;
case 2:
num[1] -= 28LL;
break;
case 3:
num[1] -= 24LL;
break;
case 4:
num[1] -= 20LL;
break;
case 5:
num[1] -= 16LL;
break;
case 6:
num[1] -= 12LL;
break;
case 7:
num[1] -= 8LL;
break;
case 8:
num[1] -= 4LL;
break;
default:
break;
}
}
}
void solveOne()
{
if (num[1] > 0LL)
{
ans += ((num[1] + 35LL) / 36LL);
}
}
int main()
{
while (true)
{
input();
if (num[1] == 0LL && num[2] == 0LL && num[3] == 0LL && num[4] == 0LL && num[5] == 0LL && num[6] == 0LL)
{
break;
}
ans = 0LL;
solveSix();
solveFive();
solveFour();
solveThree();
solveTwo();
solveOne();
printf("%lld\n", ans);
}
return 0;
}
POJ1017 贪心
最新推荐文章于 2024-08-05 22:44:37 发布