답안 #1009322

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1009322 2024-06-27T11:27:02 Z Aiperiii Self Study (JOI22_ho_t2) C++14
10 / 100
40 ms 5164 KB
#include <bits/stdc++.h>
#define int long long
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back
using namespace std;
signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int n,m;
    cin>>n>>m;
    bool s=1;
    vector <int> a(n),b(n);
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<n;i++){
        cin>>b[i];
        if(a[i]!=b[i])s=0;
    }
    if(m==1){
        int res=1e9;
        for(int i=0;i<n;i++){
            res=min(res,max(a[i],b[i]));
        }
        cout<<res<<"\n";
    }
    else if(s){
        int l=0,r=1e18;
        int ans=0;
        while(l<=r){
            int md=(l+r)/2;
            int sum=0,mn=1e9;
            for(int i=0;i<n;i++){
                int x=md/a[i];
                if(md%a[i]!=0)x++;
                sum+=x;
                mn=min(mn,a[i]*x);
            }
            if(sum<=n*m){
                ans=max(ans,mn);
                l=md+1;
            }
            else r=md-1;
        }
        cout<<ans<<"\n";
    }
    else{
        set <pair <int,int> > st;
        vector <int> cnt(n);
        for(int i=0;i<n;i++){
            st.insert({max(a[i],b[i]),i});
            if(a[i]>b[i])cnt[i]++;
        }
        for(int i=0;i<m*n-n;i++){
            int x=st.begin()->ff;
            int id=st.begin()->ss;
            st.erase(st.begin());
            if(a[id]>b[id] && cnt[id]<m){
                x+=a[id];
                cnt[id]++;
            }
            else x+=b[id];
            st.insert({x,id});
            
        }
        cout<<st.begin()->ff<<"\n";
        /*for(auto x : st){
            cout<<x.ff<<" "<<x.ss<<'\n';
        }*/
    }
}
/*
 4 25
 1 2 3 4
 1 2 3 4
 12 6 3 4
 3 3
 19 4 5
 2 6 2
 
 5 60000
 630510219 369411957 874325200 990002527 567203997
 438920902 634940661 593780254 315929832 420627496
*/
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 356 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 38 ms 4952 KB Output is correct
12 Correct 38 ms 4952 KB Output is correct
13 Correct 31 ms 4952 KB Output is correct
14 Correct 30 ms 4956 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 20 ms 5164 KB Output is correct
17 Correct 40 ms 4956 KB Output is correct
18 Correct 38 ms 4956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 20 ms 5164 KB Output is correct
3 Correct 40 ms 4956 KB Output is correct
4 Correct 38 ms 4956 KB Output is correct
5 Incorrect 1 ms 348 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 356 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 38 ms 4952 KB Output is correct
12 Correct 38 ms 4952 KB Output is correct
13 Correct 31 ms 4952 KB Output is correct
14 Correct 30 ms 4956 KB Output is correct
15 Incorrect 1 ms 348 KB Output isn't correct
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 356 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 38 ms 4952 KB Output is correct
12 Correct 38 ms 4952 KB Output is correct
13 Correct 31 ms 4952 KB Output is correct
14 Correct 30 ms 4956 KB Output is correct
15 Incorrect 1 ms 348 KB Output isn't correct
16 Halted 0 ms 0 KB -