invalid-file

Source Code


문제 : http://acm.kaist.ac.kr/Problems/2005oe.pdf

알고리즘은 재경선배가 준 아이디어를 그대로 썼습니다.
STL을 이용해서 매우 편리하게 구현 했습니다.
알고리즘은 이미 다들 알테니 C++에서 Vector와 Sorting 알고리즘, Iterator 사용법을 중점적으로 봐주세요. :)
by RyuiSaka 2007.08.05 10:05

2004년 온라인예선 문제 페이지에서 표준입출력에 대해 대회 관리자가 써놓은 글입니다.
지난번에 한번 봤던것 같긴 한데, 미처 제대로 못보고 넘어간 부분이 있더군요.
붉은색의 볼드채로 표시해놓은 부분을 유념하면 될것같습니다.
애초에 파일 입출력은 ACM에서 필요하지 않은거네요.
굳이 필요하다면 테스트할때나 필요하겠네요.(근데 테스트 할 시간이나 있을런지;)
2004년 온라인예선 E번문제(정렬) 다시 풀고있는 중입니다.
풀게되면;; 올리겠습니다.
----

  • 문제의 입출력은 표준 입출력으로 합니다.
    • 표준 입출력의 예
      1. C
      scanf ( "%d", &n ); // 표준 입력 부분
      printf ( "I got %d\n", n ); // 표준 출력 부분
      2. C++
      cin >> n; // 표준 입력 부분
      cout << "I got " << n << endl; // 표준 출력 부
      3. JAVA
      System.in.read ( n ); // 표준 입력 부분
      System.out.println ( "I got " + n ); // 표준 출력 부분

    • 반드시 이런 식으로 입출력을 해야하는 것은 아닙니다. 표준 입출력에 대해서 질문하시는 분이 많아서 이런 식으로 하면 된다는 예를 보인 것뿐입니다.
    • 프로그램 내에서 입력 파일을 열거나 출력 파일을 만들어서 입출력하지 마세요.
    • 문제에 적혀있는 입력 파일의 이름은 PC2에서 TEST를 실행하게 되면 PC2에서 그 이름의 파일을 Redirection하는 것입니다.
    • 채점 위원도 마찬가지로 Redirection을 통해서 채점하게 됩니다.
  • 문제를 다 푸신 후 제출하실 때에는 PC2에서 문제(Problem)를 고르시고 작성하신 언어(Language)를 선택하시고 소스 파일(Main File)을 선택하시고 제출(Submit)하시면 됩니다. 제출하시기 전에 테스트(Test)를 하셔도 됩니다.
  • 문제에 적혀 있는 입력 파일의 이름(예:"A.in")은 PC2에서 TEST 버튼을 이용해서 테스트할 때 쓰는 입력 파일의 이름입니다. PC2에서 TEST 버튼을 이용해서 심사 위원이 채점하는 방식과 똑같이 테스트 해보려면 반드시 문제에 적혀 있는 입력 파일의 이름으로 입력 파일을 만들어서 실행 파일과 같은 디렉토리에 넣고 테스트를 해 보십시오. Submit 하시기 전에 TEST를 해보시기를 권해드립니다.
  • by RyuiSaka 2007.07.26 05:58
    제일 궁금한 C++ 컴파일러에 관한 정보를 낚아왔습니다.

    http://acm.kaist.ac.kr/forum/viewtopic.php?t=15

    대충 요약하자면,
    6.0 컴파일러를 쓰게되면 .NET 컴파일러가 지원하는 기능을 사용하지 못하므로 .NET 컴파일러를 사용하고 여러 환경을 고려하기 위해 MingW gcc 컴파일러도 같이 사용한다는 거군요.

    맨 밑에 보시면 사용 가능한 IDE도 있으니 참고하여 지금부터 익히도록 합시다.
    by Raven the Revenger 2007.07.25 17:48


    invalid-file

    Source Code


    몇번을 시도한 끝에 받아낸 'Solved'메시지인지;;
    경계값 문제가 아니라 int형의 범위 문제였던것 같네요.
    Visual C++ 계열 컴파일러의 경우 int형이 4바이트라서 1,000,000이라는 큰 숫자도
    문제없이 인식 가능하지만 Programming Challenges Judge 사이트에서 사용하는
    컴파일러는 int형을 2바이트로 인식하지 않나 싶습니다.
    그래서 int형으로 선언해놓고 summit 할 경우, 큰 수를 입력값으로 줬을 경우 에러가 나서
    'Wrong Answer'가 뜨지 않나 싶네요.
    일단 'Solved' 뜨긴 했는데....Runtime이 안습이네요.
    아마도 Judge로봇이 Worst Case를 기준으로 Runtime을 측정하지 않나 싶습니다.
    제가 Summit한 코드 Runtime이 3.608초 나왔네요;;(Worst Case에서는 PC에서
    돌릴때도 하나, 둘, 셋 하면 답이 뜹니다;;)
    함수사용 유무는 그다지 실행시간에 영향을 미치지 않는듯 싶습니다.
    쓸때와 안쓸때 0.008초 차이 나네요;;
    더 효율적인 알고리즘이 존재하는듯 하네요;;
    Best Time을 보니 0.008초네요 -_-;;;;
    암튼....실행시간도 신경 써야할것 같습니다.

    by RyuiSaka 2007.07.21 03:55
    | 1 |