Submission #5812818
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define _for(i,j,N) for(int i = (j);i < (N);i++)
#define _rep(i,j,N) for(int i = (j);i <= (N);i++)
#define ALL(x) x.begin(),x.end()
#define pb push_back
#define mk make_pair
typedef long long LL;
typedef pair<int,int> Interval;
template<typename T>
ostream& operator<<(ostream& os,const vector<T>& v) {
_for(i,0,v.size()) os << v[i] << " ";
return os;
}
template<typename T>
ostream& operator<<(ostream& os,const set<T>& v){
for(typename set<T>::iterator it = v.begin();it != v.end();it++)
os << *it <<" ";
return os;
}
template<typename T1,typename T2>
ostream& operator<<(ostream& os,const pair<T1,T2>& v){
os << v.first <<" "<<v.second<<endl;
return os;
}
const int maxn = 1e5+5;
LL A[maxn];
LL B[maxn];
LL C[maxn];
vector<int> vi;
vector<int> ansA;
vector<int> ansB;
vector<int> ansC;
struct CmpAB{
bool operator()(const int &a,const int &b){
return (A[a]-B[a]) > (A[b] - B[b]);
}
};
struct CmpAC{
bool operator()(const int &a,const int &b){
return (A[a]-C[a]) > (A[b] - C[b]);
}
};
struct CmpBC{
bool operator()(const int &a,const int &b){
return (B[a]-C[a]) > (B[b] - C[b]);
}
};
int X,Y,Z;
LL sum1[maxn];
LL sum2[maxn];
int main()
{
cin >> X >> Y >> Z;
int N = X+Y+Z;
_rep(i,1,N){
vi.push_back(i);
scanf("%lld %lld %lld",&A[i],&B[i],&C[i]);
}
sort(ALL(vi),CmpAB());
LL ans = 0;
priority_queue<int,vector<int>,CmpAC> pq1;
priority_queue<int,vector<int>,CmpBC> pq2;
_for(i,0,X){
pq1.push(vi[i]);
ans += A[vi[i]];
}
sum1[0] = ans;
_for(i,1,Z+1){
int now = X - 1 + i;
int nn = vi[now];
int ch = pq1.top();
sum1[i] = sum1[i-1];
if(A[nn] - C[nn] > A[ch] - C[ch]){
sum1[i] -= A[ch];
sum1[i] += (A[nn]+C[ch]);
pq1.pop();
pq1.push(nn);
}else sum1[i] += C[nn];
}
reverse(ALL(vi));
ans = 0;
_for(i,0,Y){
pq2.push(vi[i]);
ans += B[vi[i]];
}
sum2[0] = ans;
//cout << ans << endl;
_for(i,1,Z+1){
int now = Y - 1 + i;
int nn = vi[now];
int tp = pq2.top();
sum2[i] = sum2[i-1];
if((B[nn] - C[nn]) > B[tp] - C[tp]){
sum2[i] -= B[tp];
sum2[i] += (B[nn]+C[tp]);
pq2.pop();
pq2.push(nn);
}else sum2[i] += C[nn];
}
reverse(sum2,sum2+Z+1);
ans = 0;
_rep(i,0,Z){
//cout << sum1[i] <<" "<<sum2[i]<<endl;
ans = max(ans,sum1[i]+sum2[i]);
}
//cout << vi << endl;
cout << ans << endl;
return 0;
}
Submission Info
Submission Time
2019-06-07 15:48:19+0900
Task
C - Coins
User
youenn98
Language
C++14 (GCC 5.4.1)
Score
800
Code Size
2834 Byte
Status
AC
Exec Time
59 ms
Memory
4216 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:71:50: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld %lld %lld",&A[i],&B[i],&C[i]);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
800 / 800
Status
Set Name
Test Cases
Sample
sample_01.txt, sample_02.txt, sample_03.txt
All
sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt
Case Name
Status
Exec Time
Memory
sample_01.txt
AC
1 ms
256 KB
sample_02.txt
AC
1 ms
256 KB
sample_03.txt
AC
1 ms
256 KB
subtask_1_01.txt
AC
1 ms
256 KB
subtask_1_02.txt
AC
9 ms
1024 KB
subtask_1_03.txt
AC
12 ms
1536 KB
subtask_1_04.txt
AC
27 ms
2172 KB
subtask_1_05.txt
AC
33 ms
2556 KB
subtask_1_06.txt
AC
45 ms
3192 KB
subtask_1_07.txt
AC
10 ms
1152 KB
subtask_1_08.txt
AC
43 ms
3704 KB
subtask_1_09.txt
AC
10 ms
1024 KB
subtask_1_10.txt
AC
38 ms
2936 KB
subtask_1_11.txt
AC
53 ms
3704 KB
subtask_1_12.txt
AC
35 ms
3704 KB
subtask_1_13.txt
AC
50 ms
3704 KB
subtask_1_14.txt
AC
59 ms
4216 KB
subtask_1_15.txt
AC
59 ms
4088 KB
subtask_1_16.txt
AC
43 ms
3960 KB
subtask_1_17.txt
AC
42 ms
4216 KB
subtask_1_18.txt
AC
50 ms
4216 KB
subtask_1_19.txt
AC
58 ms
4216 KB
subtask_1_20.txt
AC
53 ms
3832 KB
subtask_1_21.txt
AC
35 ms
4088 KB
subtask_1_22.txt
AC
49 ms
3704 KB
subtask_1_23.txt
AC
58 ms
4088 KB
subtask_1_24.txt
AC
59 ms
4088 KB
subtask_1_25.txt
AC
43 ms
3832 KB
subtask_1_26.txt
AC
46 ms
3704 KB
subtask_1_27.txt
AC
52 ms
4216 KB
subtask_1_28.txt
AC
58 ms
4216 KB
subtask_1_29.txt
AC
1 ms
256 KB