Pagini recente » Cod sursa (job #2410474) | Cod sursa (job #511335) | Cod sursa (job #2635787) | Cod sursa (job #640806) | Cod sursa (job #3235273)
#include <iostream>
#include <fstream>
using namespace std;
int H[20000001],matrix[21][1000001],indice[21];
int father(int nod, int H[]) {
return nod / 2;
}
int left_son(int nod, int H[]) {
return nod * 2;
}
int right_son(int nod, int H[]) {
return nod * 2 + 1;
}
void HeapUp(int K,int H[]) {
while(K > 1 && H[K] < H[father(K,H)]) {
swap(H[K], H[father(K,H)]);
K = father(K,H);
}
}
void HeapDown(int N, int K, int H[]) {
while(true) {
int son = 0;
if(left_son(K,H) <= N) {
son = left_son(K,H);
if(right_son(K,H) <= N && H[right_son(K,H)] < H[son]) {
son = right_son(K,H);
}
}
if(son && H[son] < H[K]) {
swap(H[son], H[K]);
K = son;
} else {
break;
}
}
}
void insert(int &N, int value, int H[]) {
H[++N] = value;
HeapUp(N,H);
}
void Delete(int& N, int K, int H[]) {
swap(H[K], H[N]);
N--;
if ((K > 1) && (H[K] < H[father(K,H)])) {
HeapUp(K,H);
} else {
HeapDown(N, K,H);
}
}
int main(){
int k,x,s=0,lung=0,maxim=0;
ifstream fin("interclasari.in");
ofstream fout("interclasari.out");
fin>>k;
for(int i=1;i<=k;++k){
fin>>x;
s+=x;
if(maxim<x)maxim=x;
for(int j=1;j<=x;++j)fin>>matrix[i][j];
}
for(int i=0;i<s;){
int minim=1000000001,min_ind=0;
for(int j=1;j<=k;j++)
if(matrix[j][indice[j]]<minim){
minim=matrix[j][indice[j]];
min_ind=j;
}
}
}