結果

問題 No.3068 Speedrun (Hard)
ユーザー ゼリトキ
提出日時 2025-03-21 22:33:52
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
MLE  
実行時間 -
コード長 1,519 bytes
コンパイル時間 3,839 ms
コンパイル使用メモリ 284,428 KB
実行使用メモリ 813,696 KB
最終ジャッジ日時 2025-03-21 22:34:00
合計ジャッジ時間 7,909 ms
ジャッジサーバーID
(参考情報)
judge7 / judge6
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 MLE * 1
other -- * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
#define INF 9e18;
int main(){
    cin.tie(0)->sync_with_stdio(0);
    cout.tie(0);
    ll A,B,C,D,N,P,Q,R,S,T;
    cin>>A>>B>>C>>D>>N>>P>>Q>>R>>S>>T;
    vector<ll>data1[20009];
    vector<ll>data2[20009];
    for(int i=0;i<=A;i++){
        for(int j=0;j<=B;j++){
            data1[i+j].push_back(i*P+j*Q);
        }
    }
    for(int i=0;i<=C;i++){
        for(int j=0;j<=D;j++){
            data2[i+j].push_back(i*R+j*S);
        }
    }
    for(int i=0;i<=A+B;i++){
        sort(data1[i].begin(),data1[i].end());
    }
    for(int i=0;i<=C+D;i++){
        sort(data2[i].begin(),data2[i].end());
    }
    ll AB=0,CD=0;
    for(int i=0;i<=N;i++){
        for(ll j=0;j<data1[i].size();j++){
            if(binary_search(data2[N-i].begin(),data2[N-i].end(),T-data1[i].at(j))==true){
                AB=data1[i].at(j);
                CD=T-AB;
            }
        }
    }
    bool already=false;
    for(int i=0;i<=A;i++){
        for(int j=0;j<=B;j++){
            if(i*P+j*Q==AB){
                cout<<i<<" "<<j<<" ";
                already=true;
                break;
            }
        }
        if(already==true) break;
    }
    already=false;
    for(int i=0;i<=C;i++){
        for(int j=0;j<=D;j++){
            if(i*R+j*S==CD){
                cout<<i<<" "<<j<<" ";
                already=true;
                break;
            }
        }
        if(already==true) break;
    }
}
0