您的位置:首页 > 其它

poj 1017 Packets

2017-08-09 09:15 281 查看
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

int main()
{
int a[10], ans, i;
while (~scanf("%d", &a[1]))
{
for (i = 2; i <= 6; i++)
scanf("%d", &a[i]);
for (i = 1; i <= 6; i++)
if (a[i]) break;
if (i > 6) break;
ans = a[6] + a[5] + a[4] + a[3] / 4;

a[3] = a[3] % 4;

a[1] = max(0, a[1] - 11 * a[5]);

if (a[2] >= a[4] * 5) a[2] = a[2] - a[4] * 5;
else
{
a[1] = max(0, a[1] - 4 * (a[4] * 5 - a[2]));
a[2] = 0;
}

if (a[3] == 3)
{
ans++;
a[1] = max(a[1] - 5, 0);
if (a[2] >= 1) a[2] -= 1;
else
{
a[1] = max(a[1] - 4, 0);
}
}
else if (a[3] == 2)
{
ans++;
a[1] = max(a[1] - 6, 0);
if (a[2] >= 3) a[2] -= 3;
else
{
a[1] = max( a[1] - (3 - a[2]) * 4, 0);
a[2] = 0;
}
}
else if (a[3] == 1)
{
ans++;
a[1] = max(a[1] - 7, 0);
if (a[2] >=  5) a[2] = a[2] -  5;
else
{
a[1] = max(0, a[1] - 4 * (5 - a[2]));
a[2] = 0;
}
}

ans += (a[1] + 4 * a[2] + 35) / 36;
printf("%d\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: