Em có bài contest: https://www.spoj.com/ACMPTIT/problems/P191SUMB/
Đây là code của em:
#include<bits/stdc++.h>
using namespace std;
struct data{
int vt,trinhdo;
long long getmoney;
};
struct baitap{
int dokho;
long long tien;
};
int cmp1(data a,data b){
if(a.trinhdo>b.trinhdo) return 0;
if(a.trinhdo==b.trinhdo&&a.vt>b.vt) return 0;
return 1;
}
int cmp2(baitap a,baitap b){
if(a.dokho>b.dokho) return 0;
return 1;
}
int cmp3(data a,data b){
if(a.vt>b.vt) return 0;
return 1;
}
int main(){
int n,k,i,j;
cin>>n>>k;
data *a=new data [100000];
baitap *b=new baitap[100000];
for(i=0;i<n;i++){
cin>>a[i].trinhdo;
a[i].vt=i;
}
sort(a,a+n,cmp1);
for(i=0;i<k;i++){
cin>>b[i].dokho>>b[i].tien;
}
sort(b,b+n,cmp2);
i=0;j=0;
long long temp=0;
while(i<n&&j<k){
if(a[i].trinhdo>=b[j].dokho){
temp+=b[j].tien;
j++;
}
else{
a[i].getmoney=temp;
i++;
}
}
for(;i<n;i++){
a[i].getmoney=temp;
}
sort(a,a+n,cmp3);
for(i=0;i<n;i++) cout<<a[i].getmoney<<" ";
}
Dù cung cấp đủ mảng sao khi nộp vẫn bị báo lỗi sigsegv ạ?
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?