#include<bits/stdc++.h>
using namespace std;
int main(){
long long n, m, k;
cin >> n >> m >> k;
vector<vector<double>> v;
vector<vector<long long>> ve;
for(int i = 0; i < n; i++){
vector<double> buf;
vector<long long> bu;
long long s=0;
for(int j = 0; j < m; j++){
long long a;
cin >> a;
s+=a;
bu.push_back(a);
buf.push_back(double(s)/double((buf.size()+1)));
}
v.push_back(buf);
ve.push_back(bu);
}
long long res=0;
while(k>0){
double ma=0;
int in, jn;
for(int i = 0; i < n; i++){
for(int j = 0; j < min((long long)(v[i].size()), k); j++){
if(ma < v[i][j] && v[i][j]){
ma = v[i][j];
in = i;
jn=j;
}
}
}
res+=ma*(jn+1);
k-=jn+1;
v[in].erase(v[in].begin(), v[in].end());
ve[in].erase(ve[in].begin(), ve[in].begin()+jn+1);
long long s=0;
for(int i = 0; i < ve[in].size(); i++){
s+=ve[in][i];
v[in].push_back(double(s)/double((v[in].size()+1)));
}
}
cout << res;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include<bits/stdc++.h> using namespace std; int main(){ long long n, m, k; cin >> n >> m >> k; vector<vector<double>> v; vector<vector<long long>> ve; for(int i = 0; i < n; i++){ vector<double> buf; vector<long long> bu; long long s=0; for(int j = 0; j < m; j++){ long long a; cin >> a; s+=a; bu.push_back(a); buf.push_back(double(s)/double((buf.size()+1))); } v.push_back(buf); ve.push_back(bu); } long long res=0; while(k>0){ double ma=0; int in, jn; for(int i = 0; i < n; i++){ for(int j = 0; j < min((long long)(v[i].size()), k); j++){ if(ma < v[i][j] && v[i][j]){ ma = v[i][j]; in = i; jn=j; } } } res+=ma*(jn+1); k-=jn+1; v[in].erase(v[in].begin(), v[in].end()); ve[in].erase(ve[in].begin(), ve[in].begin()+jn+1); long long s=0; for(int i = 0; i < ve[in].size(); i++){ s+=ve[in][i]; v[in].push_back(double(s)/double((v[in].size()+1))); } } cout << res; } |
English