CHRISTMAS 알고책대로 했는데 오답이 나오네용 ㅡㅡ; cjkis #include <iostream> #include <algorithm> #include <cassert> #include <cfloat> #include <climits> #include <cstring> #include <numeric> #include <vector> using namespace std; int dollCount, childCount; vector<int> dolls; int waysToBuy(const vector<int>& psum, int k){ const int MOD = 20091101; int ret = 0; vector<long long> count(k, 0); for (int i = 0; i < psum.size(); i++){ count[psum[i]]++; } for (int i = 0; i < k; i++){ if (count[i] >= 2){ ret = (ret + ((count[i] * (count[i - 1] - 1)) / 2)) % MOD; } } return ret; } int maxBuys(const vector<int>& psum, int k){ vector<int> ret(psum.size(), 0); vector<int> prev(k, -1); for (int i = 0; i < psum.size(); i++){ if (i>0) ret[i] = ret[i - 1]; else ret[i] = 0; int loc = prev[psum[i]]; if (loc != -1) ret[i] = max(ret[i], ret[loc] + 1); prev[psum[i]] = i; } return ret.back(); } int main(){ int testCase; cin >> testCase; for (int t = 0; t < testCase; t++){ cin >> dollCount >> childCount; dolls.resize(dollCount); vector<int> psum(1, 0); for (int i = 0; i < dollCount; i++){ cin >> dolls[i]; psum.push_back((dolls[i] + psum.back()) % childCount); } cout << waysToBuy(psum, childCount) << " " << maxBuys(psum, childCount) << endl; } return 0; } 이렇게 하는거 아닌가요? ㅠㅠ 소스에 크리스마스소스가 빠져있네용.. 설명 읽어도 잘 모르겠고,. 큭큭.. waysToBuy, maxBuys 함수 사용법좀 알려주실 분? ㅠ ㅠ 9년 전
1개의 댓글이 있습니다. JongMan 책의 오류입니다. (...) 정오표 에서 606쪽 부분을 참고해 주세요. 혼란을 드려 죄송합니다. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
cjkis
이렇게 하는거 아닌가요? ㅠㅠ
소스에 크리스마스소스가 빠져있네용..
설명 읽어도 잘 모르겠고,. 큭큭..
waysToBuy, maxBuys 함수 사용법좀 알려주실 분? ㅠ ㅠ
9년 전