제출 #825393

#제출 시각아이디문제언어결과실행 시간메모리
825393LoboPacking Biscuits (IOI20_biscuits)C++17
42 / 100
66 ms20516 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define mp make_pair #define fr first #define sc second int x; vector<int> a; vector<vector<int>> dp; int sol(int i, int q) { if(dp[i][q] != -1) return dp[i][q]; assert(0 <= q && q <= 2*x); // cout << i << " " << q << " " << a[i] << endl; if(i == 60) return dp[i][q] = 1; dp[i][q] = sol(i+1,(q+a[i])/2); if(q+a[i] >= x) dp[i][q]+= sol(i+1,(q+a[i]-x)/2); return dp[i][q]; } long long count_tastiness(long long X, std::vector<long long> A) { x = X; a.clear(); a.resize(61,0); for(int i = 0; i < A.size(); i++) a[i] = A[i]; dp.clear(); dp.resize(61,vector<int>((int) 2e4+10,-1)); for(int i = 0; i < 60; i++) { if(a[i] > x+1) { int dif = a[i]-x; if(dif%2 == 1) dif--; a[i]-= dif; a[i+1]+= dif/2; } } return sol(0,0); }

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

biscuits.cpp: In function 'long long int count_tastiness(long long int, std::vector<long long int>)':
biscuits.cpp:30:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |  for(int i = 0; i < A.size(); i++) a[i] = A[i];
      |                 ~~^~~~~~~~~~
#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...