2017.06.26 19:27
2017.06.26 23:02
2019.04.29 22:39
이게 왜 표현 오류가 뜨나요?
재데로 나오는 것 같은데...
#include <stdio.h>
#include <math.h>
#include<algorithm>
using namespace std;
int w[7],d[7],l[7],wr[7],dr[7],lr[7],flag;
void chk()
{
for(int i=1; i<=6; i++)
{
if(w[i]!=wr[i]||d[i]!=dr[i]||l[i]!=lr[i])
{
return;
}
}
printf("1\n");
flag=1;
}
void f(int a,int b)
{
if(flag)
{
return;
}
if(a==6)
{
chk();
return;
}
wr[a]++;
lr[b]++;
if(b==6)
{
f(a+1,a+2);
}
else
{
f(a,b+1);
}
wr[a]--;
lr[b]--;
wr[b]++;
lr[a]++;
if(b==6)
{
f(a+1,a+2);
}
else
{
f(a,b+1);
}
wr[b]--;
lr[a]--;
dr[a]++;
dr[b]++;
if(b==6)
{
f(a+1,a+2);
}
else
{
f(a,b+1);
}
dr[a]--;
dr[b]--;
}
int main()
{
for(int k=1; k<=4; k++)
{
flag=0;
for(int i=1; i<=6; i++)
{
scanf("%d%d%d",&w[i],&d[i],&l[i]);
wr[i]=dr[i]=lr[i]=0;
}
f(1,2);
if(!flag)
printf("0\n");
}
}
2019.04.30 13:30
이런 내용은 "도와주세요!" 버튼을 누르셔서 도움을 요청해 주세요..
문제의 질의 응답 코너에는 이렇게 소스를 제시하는 것은 부적절합니다~
직접 실험하면 바로 출력이 되는데, 왜 시간 초과가 뜨는지 궁금하신 거지요?
해당 문제의 시간 제한은 0.3초입니다. 그 만큼 시간 효율적인 알고리즘으로 작성해야 합니다.