Submission #16060

#TimeUsernameProblemLanguageResultExecution timeMemory
16060kaTkaHr배낭 문제 준비하기 (GA9_invknapsack)C++98
0 / 100
1000 ms1932 KiB
#include<stdio.h> #include<vector> using namespace std; typedef long long ll; ll D[305][305]; int K = 300; vector<int> L; void add(int x) { int s = L.size(), e = s + 1; for (int i = 0; i <= K; i++) D[e][i] = D[s][i]; for (int i = x; i <= K; i++) D[e][i] += D[s][i-x]; L.push_back(x); } int main() { for(ll R = 1e18 - 1e7; R <= 1e18 - 1e6; R++){ D[0][0] = 1; for(int i = 1; i <= K; i *= 2){ add(i); } while(D[L.size()][K] + D[L.size()][K-1] <= R) add(1); while(D[L.size()][K] != R){ for(int j = 1; j <= K; j++){ if(D[L.size()][K] + D[L.size()][K-j] <= R ){ add(j); break; } } } if(L.size() >= 301 ) return !printf("%lld\n", R); else if( L.size() >= 200) printf("%d\n", L.size()); L.clear(); } printf("OK"); }
#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...