invalid-file

Source Code


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

알고리즘은 재경선배가 준 아이디어를 그대로 썼습니다.
STL을 이용해서 매우 편리하게 구현 했습니다.
알고리즘은 이미 다들 알테니 C++에서 Vector와 Sorting 알고리즘, Iterator 사용법을 중점적으로 봐주세요. :)
by RyuiSaka 2007. 8. 5. 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. 7. 26. 05:58
    제일 궁금한 C++ 컴파일러에 관한 정보를 낚아왔습니다.

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

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

    맨 밑에 보시면 사용 가능한 IDE도 있으니 참고하여 지금부터 익히도록 합시다.
    by 알 수 없는 사용자 2007. 7. 25. 17:48
    http://acm.kaist.ac.kr/Problems/2005oa.pdf

    이정도야 뭐 가뿐히!
    하지만 생각보다 코딩이 상당히 귀찮았다는거....

    별 거 없이 유클리드 호제법에 따라 최소공배수를 먼저 구하는게 포인트!
    최송공배수 = 두수의 곱 / 최대공약수

    입력받은 값들중 뒤에서 부터 두개씩 비교해서 더 이득인 경우를 찾아
    그 배열순서를 임시변수에 저장해 나간후 계속해서 비교
    사소한 예외처리들은 패스!

    소스보면 못알아볼지도
    내 특유의 눈에 들어오지도 않는 코드라서
    이해해주길...

    풀이는 담 이시간에~

    by 알 수 없는 사용자 2007. 7. 24. 23:13

    invalid-file

    문제


    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. 7. 21. 03:55

    다음주 월요일 저녁에 다들 모여서 빡세게 굴러가기 위한 회의를


    하고 싶습니다.


    다들 시간되는지요?


    성우는 피곤해서 안될려나?


    안되는 사람 많으면 화욜로 미룰려고 합니다.



    맘을 다잡고 빡세게 돌아가기 위한 준비라고 생각하고 모두들

    답글 달아주세요

    by 알 수 없는 사용자 2007. 7. 19. 17:28

    http://acm.kaist.ac.kr/Problems/2000a.pdf

    Car Racing

    이거야 원 정렬문제는 매년 한문제 이상씩 나오느거 같네

    본선 a번 문제인듯 하지만

    그리 어렵진 않음

    이때는 테스트케이스 입력이 파일 입출력

    두자리씩 한번에 이전 자리와 비교해서 +1 한 값이 없으면

    NO
    있으면 계속 오름차순 정렬
    그리고 YES


    by 알 수 없는 사용자 2007. 7. 16. 17:05

    invalid-file

    Source Code

    invalid-file

    Sample Input



    문제 해석이 힘들어서 그렇지 풀이 자체는 쉬웠습니다.
    한번에 로봇 통과했네요;;
    ----

    Greedy Gift Givers

    A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts of money. Each of these friends might or might not give some money to any or all of the other friends. Likewise, each friend might or might not receive money from any or all of the other friends. Your goal in this problem is to deduce how much more money each person gives than they receive.

    The rules for gift-giving are potentially different than you might expect. Each person sets aside a certain amount of money to give and divides this money evenly among all those to whom he or she is giving a gift. No fractional money is available, so dividing 3 among 2 friends would be 1 each for the friends with 1 left over -- that 1 left over stays in the giver's "account".

    In any group of friends, some people are more giving than others (or at least may have more acquaintances) and some people have more money than others.

    Given a group of friends, no one of whom has a name longer than 14 characters, the money each person in the group spends on gifts, and a (sub)list of friends to whom each person gives gifts, determine how much more (or less) each person in the group gives than they receive.

    IMPORTANT NOTE

    The grader machine is a Linux machine that uses standard Unix conventions: end of line is a single character often known as '\n'. This differs from Windows, which ends lines with two charcters, '\n' and '\r'. Do not let your program get trapped by this!

    PROGRAM NAME: gift1

    INPUT FORMAT

    Line 1: The single integer, NP
    Lines 2..NP+1: Each line contains the name of a group member
    Lines NP+2..end: NP groups of lines organized like this:
    The first line in the group tells the person's name who will be giving gifts.
    The second line in the group contains two numbers: The initial amount of money (in the range 0..2000) to be divided up into gifts by the giver and then the number of people to whom the giver will give gifts, NGi (0 ≤ NGi ≤ NP-1).
    If NGi is nonzero, each of the next NGi lines lists the the name of a recipient of a gift.

    by RyuiSaka 2007. 7. 9. 17:53

    내일(금) 오전 10시까지 ACM하시는 분들 모여주시고

    SoC는 김신호씨랑 최홍준씨 오후에 오는대로 시작하겠습니다.

    by 알 수 없는 사용자 2007. 7. 5. 16:15

    invalid-file

    2004년 온라인예선 D - 미팅주선

    invalid-file

    소스코드

    invalid-file

    입력파일

    invalid-file

    결과 출력파일


    순전히 노가다문제였습니다.
    문제를 푸는 Solution은 이미 초반에 파악했지만 막상 구현하는데 꽤나 오랜시간이
    걸렸던 문제입니다.
    괜히 타율이 낮은게 아니더군요;;
    다행히 STL의 힘으로 완성했습니다.
    소스코드 보고 익힐 사항은 Vector 자료형의 사용법과 Permutation의 모든 경우의수를
    구해주는 next_permutation 메소드입니다.
    일단 소스코드를 보고 이해가 안가는 부분은 개인적으로 물어보시기 바랍니다.
    시간 나면 Solution과 코드 설명 올리겠습니다;;

    by RyuiSaka 2007. 7. 5. 00:58
    | 1 2 |