#include<iostream>
#include<vector>
using namespace std;
vector<vector<long long>> D;
vector<int> IDX;
vector<bool> R; // rosnaca
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, m, k;
cin>>n>>m>>k;
D.resize(n);
IDX.resize(n, 0);
R.resize(n, false);
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
long long a;
cin>>a;
D[i].push_back(a);
}
int idx=0;
while(idx+1<m){
if(D[i][idx] < D[i][idx + 1]){
R[i]=true;
break;
}
idx++;
}
}
long long suma = 0;
while(k){
long long najlepsza=-1;
int naj_idx=-1;
for(int i=0; i<n; i++){
if(D[i][IDX[i]] > najlepsza){
najlepsza = D[i][IDX[i]];
naj_idx=i;
}
else if(D[i][IDX[i]] == najlepsza && R[i]){
najlepsza = D[i][IDX[i]];
naj_idx=i;
}
}
//cout<<"Najlepsza wartosc: "<<najlepsza<<" idx: "<<IDX[naj_idx]<<" z listy: "<<naj_idx<<endl;
suma+=najlepsza;
IDX[naj_idx]++;
k--;
}
cout<<suma;
}
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 | #include<iostream> #include<vector> using namespace std; vector<vector<long long>> D; vector<int> IDX; vector<bool> R; // rosnaca int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n, m, k; cin>>n>>m>>k; D.resize(n); IDX.resize(n, 0); R.resize(n, false); for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ long long a; cin>>a; D[i].push_back(a); } int idx=0; while(idx+1<m){ if(D[i][idx] < D[i][idx + 1]){ R[i]=true; break; } idx++; } } long long suma = 0; while(k){ long long najlepsza=-1; int naj_idx=-1; for(int i=0; i<n; i++){ if(D[i][IDX[i]] > najlepsza){ najlepsza = D[i][IDX[i]]; naj_idx=i; } else if(D[i][IDX[i]] == najlepsza && R[i]){ najlepsza = D[i][IDX[i]]; naj_idx=i; } } //cout<<"Najlepsza wartosc: "<<najlepsza<<" idx: "<<IDX[naj_idx]<<" z listy: "<<naj_idx<<endl; suma+=najlepsza; IDX[naj_idx]++; k--; } cout<<suma; } |
English