#include <stdio.h>
using namespace std;
int main(void){
int n,m; //l arow i l koszen
long long i,j;
long long tmpdzien,tmpwysok,suma,tmp_od;
scanf("%d%d",&n,&m);
long long wzrost_aru[n], obecna_trawa[n];
for(i=0;i<n;i++){
scanf("%lld",&wzrost_aru[i]);
obecna_trawa[i]=0;
}
for(i=0;i<m;i++){
if(i==0) tmp_od=0;
scanf("%lld %lld", &tmpdzien, &tmpwysok);
//najpierw wzrost trawy
suma=0;
for(j=0;j<n;j++) {
obecna_trawa[j]+=(wzrost_aru[j]*(tmpdzien-tmp_od));
if(obecna_trawa[j]-tmpwysok>=0)
suma+=(obecna_trawa[j]-tmpwysok);
if(obecna_trawa[j]>tmpwysok)
obecna_trawa[j]=tmpwysok;
//potem koszenie
}
printf("%lld\n",suma);
tmp_od=tmpdzien;
}
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 | #include <stdio.h> using namespace std; int main(void){ int n,m; //l arow i l koszen long long i,j; long long tmpdzien,tmpwysok,suma,tmp_od; scanf("%d%d",&n,&m); long long wzrost_aru[n], obecna_trawa[n]; for(i=0;i<n;i++){ scanf("%lld",&wzrost_aru[i]); obecna_trawa[i]=0; } for(i=0;i<m;i++){ if(i==0) tmp_od=0; scanf("%lld %lld", &tmpdzien, &tmpwysok); //najpierw wzrost trawy suma=0; for(j=0;j<n;j++) { obecna_trawa[j]+=(wzrost_aru[j]*(tmpdzien-tmp_od)); if(obecna_trawa[j]-tmpwysok>=0) suma+=(obecna_trawa[j]-tmpwysok); if(obecna_trawa[j]>tmpwysok) obecna_trawa[j]=tmpwysok; //potem koszenie } printf("%lld\n",suma); tmp_od=tmpdzien; } return 0; } |
English