#include <stdio.h>
#include <stdlib.h>
//lista
struct lista{
int wysokosc;
int v_wzrostu;
struct lista *next;
};
typedef struct lista lista;
int main(void){
int ile,koszenia;
scanf("%d%d",&ile,&koszenia);
//lista - wpisanie
lista *poczatek;
lista *biezacy=NULL;
for(int i=0;i<ile;i++){
lista *nowy=(lista*) malloc(sizeof(lista));
scanf("%d",&nowy->v_wzrostu);
nowy->wysokosc=0;
if(biezacy) biezacy->next=nowy;
else poczatek=nowy;
biezacy=nowy;
}
//lista - wypisanie
for(int i=0;i<koszenia;i++){
int suma=0;
int dzien,kosz;
scanf("%d%d",&dzien,&kosz);
biezacy=poczatek;
while(biezacy){
biezacy->wysokosc+=biezacy->v_wzrostu;
if(biezacy->wysokosc>kosz){
suma+=biezacy->wysokosc-kosz;
biezacy->wysokosc=kosz;
}
biezacy=biezacy->next;
}
printf("%d\n",suma);
}
//lista - czyszczenie
biezacy=poczatek;
while(biezacy){
lista *nastepny= biezacy->next;
free(biezacy);
biezacy = nastepny;
}
return 0;
}
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 | #include <stdio.h> #include <stdlib.h> //lista struct lista{ int wysokosc; int v_wzrostu; struct lista *next; }; typedef struct lista lista; int main(void){ int ile,koszenia; scanf("%d%d",&ile,&koszenia); //lista - wpisanie lista *poczatek; lista *biezacy=NULL; for(int i=0;i<ile;i++){ lista *nowy=(lista*) malloc(sizeof(lista)); scanf("%d",&nowy->v_wzrostu); nowy->wysokosc=0; if(biezacy) biezacy->next=nowy; else poczatek=nowy; biezacy=nowy; } //lista - wypisanie for(int i=0;i<koszenia;i++){ int suma=0; int dzien,kosz; scanf("%d%d",&dzien,&kosz); biezacy=poczatek; while(biezacy){ biezacy->wysokosc+=biezacy->v_wzrostu; if(biezacy->wysokosc>kosz){ suma+=biezacy->wysokosc-kosz; biezacy->wysokosc=kosz; } biezacy=biezacy->next; } printf("%d\n",suma); } //lista - czyszczenie biezacy=poczatek; while(biezacy){ lista *nastepny= biezacy->next; free(biezacy); biezacy = nastepny; } return 0; } |
English