답안 #891990

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
891990 2023-12-24T15:08:45 Z alexander707070 Cookies (JOI23_cookies) C++14
0 / 100
1000 ms 399028 KB
#include<bits/stdc++.h>
#define MAXN 507
using namespace std;

int n,m,pt,total;
int a[MAXN],b[MAXN];

vector< pair<int,int> > v;
vector< vector<int> > w;

int maxs[MAXN],br;
bool li[MAXN][MAXN][MAXN];
int dp[MAXN][MAXN][MAXN];

int ff(int pos,int box,int sum){
    if(sum<0 or box<1)return 1000000;
    if(sum==0)return 0;

    if(li[pos][box][sum])return dp[pos][box][sum];
    li[pos][box][sum]=true;

    dp[pos][box][sum]=ff(pos,box-1,sum);

    if(total-sum+b[box]<=maxs[pos]){
        dp[pos][box][sum]=min(dp[pos][box][sum],ff(pos+1,box,sum-b[box])+1);
    }

    return dp[pos][box][sum];
}

void solve(int pos,int box,int sum){
    if(sum==0)return;

    if(ff(pos,box,sum)==ff(pos,box-1,sum)){
        solve(pos,box-1,sum); return;
    }

    br++; v.push_back({b[box],br});
    solve(pos+1,box,sum-b[box]);
}

int main(){

    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        total+=a[i];
    }
    
    for(int i=1;i<=total;i++){
        for(int f=1;f<=n;f++){
            maxs[i]+=min(a[f],i);
        }
    }

    cin>>m;
    for(int i=1;i<=m;i++){
        cin>>b[i];
    }

    if(ff(1,m,total)>total){
        cout<<"-1\n";
    }

    solve(1,m,total);
    w.resize(int(v.size()));

    sort(a+1,a+n+1);
    reverse(a+1,a+n+1);

    for(int i=1;i<=n;i++){
        sort(v.begin(),v.end());
        reverse(v.begin(),v.end());

        for(int f=0;f<a[i];f++){
            v[f].first--;
            w[v[f].second-1].push_back(i);
        }
    }

    cout<<w.size()<<"\n";
    for(int i=0;i<w.size();i++){
        cout<<w[i].size()<<" ";
        for(int f:w[i])cout<<f<<" ";
        cout<<"\n";
    }

    return 0;
}

Compilation message

cookies.cpp: In function 'int main()':
cookies.cpp:82:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |     for(int i=0;i<w.size();i++){
      |                 ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 8540 KB Output is correct
8 Correct 99 ms 397184 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 54 ms 399028 KB Output is correct
11 Execution timed out 1043 ms 4696 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1037 ms 4444 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Execution timed out 1089 ms 4444 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 8540 KB Output is correct
8 Correct 99 ms 397184 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 54 ms 399028 KB Output is correct
11 Execution timed out 1043 ms 4696 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 8540 KB Output is correct
8 Correct 99 ms 397184 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 54 ms 399028 KB Output is correct
11 Execution timed out 1043 ms 4696 KB Time limit exceeded
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 8540 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 0 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 0 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 8540 KB Output is correct
8 Correct 99 ms 397184 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 54 ms 399028 KB Output is correct
11 Execution timed out 1043 ms 4696 KB Time limit exceeded
12 Halted 0 ms 0 KB -