CHRISTMAS에 인형 나누기 질문드립니다

  • whatugonnado
    whatugonnado

    CHRISTMAS

    • 1번은 부분합과 쌓기(?)기법
    • 2번은 슬라이딩 윈도우 기법을 이용

    하려고했는데 오답이 나와서 어떤부분의 문제인지 궁금합니다.

    P.S.아마 2번출력이 문제가아닐까 생각합니다.

    • 코드입니다.

      unsigned int first() {
      unsigned int head = 200000;
      unsigned int ret = 0, ret2 = 0;
      for (unsigned int i = N; i >= 1; --i) {
          ret = (ret + Stack[accum[i]]) % 20091101;
          ++Stack[accum[i]];
          //한개짜리 고려
          //i번째의 꼬리(과거의 헤드)가 전체 head보다 앞에있을때만 가능
          if (accum[i] == 0 || Stack_head[accum[i]] < head) {
              ++ret2;
              head = Stack_head[accum[i]];
          }
          Stack_head[accum[i]] = i;
      }
      cout << ret << endl << ret2 << endl;
      return 0;
      }
      

    3년 전
2개의 댓글이 있습니다.
  • astein
    astein

    일단 출력형식이 틀렸습니다.... 한줄에 숫자 두개를 출력해야 합니다.


    3년 전 link
  • whatugonnado
    whatugonnado

    앗! 감사합니다,그런데 그 부분을 수정해도 오답으로 처리가 되네요ㅠㅠ


    3년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.