開啟章節選單

1203 Argus

程式碼

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define idonthavegirlfriend ios::sync_with_stdio(0),cin.tie(0);
#define pb push_back
#define yn(a) (a?"Yes\n":"No\n")
//author:Jackis666
bool cmp(pair<int,int> a,pair<int,int> b){
    if(a.second==b.second){return a.first<b.first;}
    return a.second<b.second;
}
signed main(){
    idonthavegirlfriend
    string s;
    vector<pair<int,int>> a;
    while(cin>>s,s!="#"){
        int aa,bb;
        cin>>aa>>bb;
        a.pb({aa,bb});
    }
    int k;
    cin>>k;
    vector<pair<int,int>> ans;
    for(int i=0;i<k;i++){
        for(int j=0;j<a.size();j++){
            ans.pb({a[j].first,(i+1)*a[j].second});
        }
    }
    sort(ans.begin(),ans.end(),cmp);
    for(int i=0;i<k;i++){cout<<ans[i].first<<endl;}
}
//author: Piau
#include <bits/stdc++.h>
using namespace std;

#define WA() cin.tie(0)->sync_with_stdio(0)
#define all(x) (x).begin(), (x).end()
#define int long long
#define TIII tuple<int, int, int>

signed main() { WA();
    string s;
    priority_queue<TIII, vector<TIII>, greater<TIII>> pq;
    while (getline(cin, s), s != "#") {
        stringstream ss(s); int id, w;
        ss >> s; ss >> id; ss >> w;
        pq.push({w, id, w});
    }
    int k; for (cin >> k; k--;) {
        auto [t, id, w] = pq.top(); pq.pop();
        cout << id << '\n';
        pq.push({t+w, id, w});
    }
}

練習題