제출 #891986

#제출 시각아이디문제언어결과실행 시간메모리
891986alexander707070Cookies (JOI23_cookies)C++14
6 / 100
6 ms33624 KiB
#include<bits/stdc++.h> #define MAXN 15007 using namespace std; int n,m,pt,total; int a[MAXN],b[MAXN]; vector< pair<int,int> > v; vector< vector<int> > sol; bool li[MAXN][MAXN]; int dp[MAXN][MAXN]; int ff(int pos,int sum){ if(sum<0)return 1000000; if(sum==0 and pos==0)return 0; else if(pos==0)return 1000000; if(li[pos][sum])return dp[pos][sum]; li[pos][sum]=true; dp[pos][sum]=min(ff(pos-1,sum),ff(pos,sum-b[pos])+1); return dp[pos][sum]; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; total+=a[i]; v.push_back({a[i],i}); } reverse(v.begin(),v.end()); cin>>m; for(int i=1;i<=m;i++){ cin>>b[i]; } if(ff(m,total)>total){ cout<<"-1\n"; return 0; } pt=m; while(!v.empty()){ while(pt>=1 and (b[pt]>v.size() or ff(pt,total)!=ff(pt,total-b[pt])+1))pt--; if(pt==0){ cout<<"-1\n"; return 0; } sol.push_back({}); for(int i=0;i<b[pt];i++){ v[i].first--; sol.back().push_back(v[i].second); } total-=b[pt]; sort(v.begin(),v.end()); reverse(v.begin(),v.end()); while(!v.empty() and v.back().first==0)v.pop_back(); } cout<<sol.size()<<"\n"; for(int i=0;i<sol.size();i++){ cout<<sol[i].size()<<" "; for(int f:sol[i])cout<<f<<" "; cout<<"\n"; } return 0; }

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

cookies.cpp: In function 'int main()':
cookies.cpp:49:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |         while(pt>=1 and (b[pt]>v.size() or ff(pt,total)!=ff(pt,total-b[pt])+1))pt--;
      |                          ~~~~~^~~~~~~~~
cookies.cpp:70:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |     for(int i=0;i<sol.size();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...
#Verdict Execution timeMemoryGrader output
Fetching results...