문제출처 : https://www.acmicpc.net/problem/3213
이게 번역이 잘못되서 마지막줄 모든 친구들이 정확히 한 조각씩 피자를 가져야한다는말은
3/4조각을 1/4,1/2로 쪼갤수 없다는 의미이다.
그러니까 3/4,1/2조각은 1판하고 1/4을 먹는게아니라 2판을시켜서 3/4조각을먹고 1/2조각을 먹어야 한다는 말이다.
코딩자체는 그렇게 어렵지않다.
code
#include <stdio.h>
#include <string.h>
char friend[10001][5] = { 0 };
int main()
{
int N, i, piece1 = 0, piece2 = 0, piece3 = 0, result = 0, rest = 0;
scanf("%d", &N);
for (i = 0; i < N; i++)
scanf("%s", friend[i]);
for (i = 0; i < N; i++)
{
if (strcmp(friend[i], "1/4")==0)
piece1++;
else if (strcmp(friend[i], "1/2")==0)
piece2++;
else
piece3++;
}
if (piece2 % 2 == 0)
result += piece2 / 2;
else
{
result += piece2 / 2;
rest += 2;
}
if (piece1 == piece3)
result += piece1;
else if (piece1 > piece3)
{
result += piece3;
rest += piece1 - piece3;
}
else if (piece1 < piece3)
{
result += piece1 + (piece3 - piece1);
}
if (result % 4 == 0)
result += rest / 4;
else
result += rest / 4 + 1;
printf("%d",result);
return 0;
}