Pagini recente » Cod sursa (job #87548) | Cod sursa (job #758123) | Cod sursa (job #2318249) | Cod sursa (job #2330830) | Cod sursa (job #425717)
Cod sursa(job #425717)
Utilizator |
Stefan Tzutz |
Data |
25 martie 2010 23:39:30 |
Problema |
Gutui |
Scor |
50 |
Compilator |
c |
Status |
done |
Runda |
teme_upb |
Marime |
1.22 kb |
#include<stdio.h>
#include<stdlib.h>
long N,H,U,lvl,i,*s,sum,j,lvlm,b11,a1,b1;
/*
long put (long a,long b){
if(s[a]==0){
s[a]=b;
v[a]=a;
return 0;
}
else {
j=a;
while(j>=0){
if(s[j]==0){
s[j]=b;
v[j]=a;
return 0;
}
else {
if(s[j]<b) {
b1=s[j];
a1=v[j];
s[j]=b;
v[j]=a;
return 1;
}
}
j--;
}
return 0;
}
}
*/
int main(){
long a,b;
int ok;
FILE *f=fopen("gutui.in","r");
FILE *g=fopen("gutui.out","w");
fscanf(f,"%ld %ld %ld",&N,&H,&U);
lvl=H/U+1;
s=(long *) malloc (lvl*sizeof(long));
//v=(long *) malloc (lvl*sizeof(long));
for(i=0;i<lvl;i++)
s[i]=0;
for(i=0;i<N;i++){
fscanf(f,"%ld %ld",&a,&b);
lvlm=(H-a)/U;
a1=lvlm;
b1=b;
ok=1;
while(ok){
if(s[a1]==0){
s[a1]=b1;
//v[a1]=a1;
ok=0;
}
else {
j=a1;
while(j>=0){
if(s[j]==0){
s[j]=b1;
//v[j]=a1;
ok=0;
}
else {
if(s[j]<b1) {
b11=s[j];
//a11=v[j];
s[j]=b1;
b1=b11;
a1=j;
//v[j]=a1;
ok=1;
}
}
j--;
}
if(j==-1) ok=0;
}
}
}
sum=0;
for(i=0;i<lvl;i++)
sum=sum+s[i];
fprintf(g,"%ld",sum);
return 0;
}