학교에서 문제 풀기 시작하는 중인데
문제11번 동맹 휴업(Hartal)을 풀어봤거든..,
학교컴이 느려서 그런가?? 짤방처럼 결과가 나오더라고...
컴파일 실행 결과 이상없이 제대로 나왔는데
http://www.programming-challenges.com/pg.php?page=submission
요기에서 submit 하면.. 한참뒤에 저렇게 메세지 뜨는데..
인터넷 느려서 그런거야? 아니면 내가 잘못 짠건가..
소스도 같이올릴게..
#include <stdio.h>
#include <stdlib.h>
void main()
{
int cnt;
int *N, *P, **H, *result;
scanf(\"%d\", &cnt);
N = (int *)malloc(sizeof(int) * cnt);
H = (int **)malloc(sizeof(int *) * cnt);
P = (int *)malloc(sizeof(int) * cnt);
result = (int *)malloc(sizeof(int) * cnt);
for(int i = 0; i < cnt; i++)
{
scanf(\"%d\", &N[i]);
scanf(\"%d\", &P[i]);
H[i] = (int *)malloc(sizeof(int) * P[i]);
for(int j = 0; j < P[i]; j++)
{
scanf(\"%d\", &H[i][j]);
}
result[i] = 0;
for(j = 0; j < N[i]; j++)
{
for(int k = 0; k < P[i]; k++)
{
if( (j+1) % H[i][k] == 0)
{
break;
}
}
if(P[i] != k && (j % 7 != 5 && j % 7 != 6) )
{
result[i]++;
}
}
}
for(i = 0; i < cnt; i++)
{
printf(\"%d\\n\", result[i]);
free(H[i]);
}
free(N);
free(P);
}
로컬에서 테스트 해볼때 확장자를 .c로 하구 해봤어? 블락 안에서 선언이 젤 앞에 나와야 해 i, j, k같은 저런건 안되; 그리구 main의 프로토 타입을 int main(void) 아니면 int main(int argc, char *argv[])로 안하면 컴파일 에러나는 컴파일러도 있어; 끝에 리턴해주구
http://www.comeaucomputing.com/tryitout/
가서 c89/c90 mode로 컴파일함 해봐
흠.. 그치만 submit 할때 language를 C++로 했는데 그러면 괜찮은거 아냐?
c++라두 scope룰 때문에 for문 안에서 선언한 i, j를 저렇게 밑에서 쓰지못할껄
철저히 ansi c로 올려야 함. 딱봐도 void main()에서 문제 됐을것 같다.
vc++6.0쓰지? for안에서 선언한 변수는 원래 for안에서만 사용가능. vc++6.0이 잘못된거다
흠.. 그런가.. icpcres.ecs.baylor.edu/onlinejudge 에서는 submit 되었는데.. 다시 한번 올려볼게 ㅎㅎ
아.. 되네 ㅎㅎ solved 됐어.. 이책 너무재미있다