제출 #828836

#제출 시각아이디문제언어결과실행 시간메모리
828836Abrar_Al_Samit비스킷 담기 (IOI20_biscuits)C++17
0 / 100
1 ms468 KiB
#include <bits/stdc++.h> #include "biscuits.h" using namespace std; int k = 122; vector<long long>a; long long x; map<long long, long long>dp[125]; long long solve(int i, long long j) { if(i>=k) return 1; if(dp[i].count(j)) return dp[i][j]; long long &ret = dp[i][j]; if(ret!=-1) return ret; ret = 0; long long cr = a[i] + j; ret = solve(i+1, cr/2); if(cr>=x) ret += solve(i+1, (cr-x)/2); return ret; } long long count_tastiness(long long X, vector<long long> A) { A.resize(122); a = A, x = X; for(int i=0; i<k-1; ++i) { if(a[i]<=x) continue; long long take = max(0LL, a[i] - x); a[i] -= take - (take & 1); a[i+1] += take / 2; } memset(dp, -1, sizeof dp); return solve(0, 0); }

컴파일 시 표준 에러 (stderr) 메시지

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:37:26: warning: 'void* memset(void*, int, size_t)' writing to an object of type 'class std::map<long long int, long long int>' with no trivial copy-assignment [-Wclass-memaccess]
   37 |  memset(dp, -1, sizeof dp);
      |                          ^
In file included from /usr/include/c++/10/map:61,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:81,
                 from biscuits.cpp:1:
/usr/include/c++/10/bits/stl_map.h:100:11: note: 'class std::map<long long int, long long int>' declared here
  100 |     class map
      |           ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...