#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; } |