#include <cstdio>
#include <algorithm>
using namespace std;
inline void putUI( unsigned long long int n) {
if(n>0) {
putUI(n/10);
putc_unlocked(n%10+48,stdout);
}
}
inline void readUI(int *w)
{
register char c = 0;
while (c < 33) c=getc_unlocked(stdin);
(*w) = 0;
while (c>32) {(*w)=(*w)*10LL + (c-48); c=getc_unlocked(stdin);}
}
inline void read(unsigned long long int *z)
{
register char c = 0;
while (c < 33) c=getc_unlocked(stdin);
(*z) = 0;
while (c>32) {(*z)=(*z)*10LL + (c-48); c=getc_unlocked(stdin);}
}
int a,b,c,d;
int main()
{
int a=0,b=0,c=0,d=0;
unsigned long long int skoszenia;
int gatunki;
int ilosc_skoszen;
unsigned long long int dni=1,dzien=1;
unsigned long long int dni_koszen;
unsigned long long int suma=0;
readUI(&gatunki);
readUI(&ilosc_skoszen);
int tab[gatunki];
unsigned long long int trawa[gatunki] ;
for(a=0;a<gatunki;a++)
readUI(&tab[a]);
sort(tab,tab+gatunki);
for(c=0;c<gatunki;c++)
trawa[c]=tab[c];
while(ilosc_skoszen--)
{
suma=0;
read(&dni_koszen);
read(&skoszenia);
dni=dni_koszen-dzien;
dzien=dni_koszen;
for(b=0;b<gatunki;b++)
{
trawa[b]+=tab[b]*dni;
}
for(d=0;d<gatunki;d++)
{
if(trawa[d]>skoszenia)
{
suma+=trawa[d]-skoszenia;
trawa[d]=skoszenia;
}
}
printf("%llu\n",suma);
}
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #include <cstdio> #include <algorithm> using namespace std; inline void putUI( unsigned long long int n) { if(n>0) { putUI(n/10); putc_unlocked(n%10+48,stdout); } } inline void readUI(int *w) { register char c = 0; while (c < 33) c=getc_unlocked(stdin); (*w) = 0; while (c>32) {(*w)=(*w)*10LL + (c-48); c=getc_unlocked(stdin);} } inline void read(unsigned long long int *z) { register char c = 0; while (c < 33) c=getc_unlocked(stdin); (*z) = 0; while (c>32) {(*z)=(*z)*10LL + (c-48); c=getc_unlocked(stdin);} } int a,b,c,d; int main() { int a=0,b=0,c=0,d=0; unsigned long long int skoszenia; int gatunki; int ilosc_skoszen; unsigned long long int dni=1,dzien=1; unsigned long long int dni_koszen; unsigned long long int suma=0; readUI(&gatunki); readUI(&ilosc_skoszen); int tab[gatunki]; unsigned long long int trawa[gatunki] ; for(a=0;a<gatunki;a++) readUI(&tab[a]); sort(tab,tab+gatunki); for(c=0;c<gatunki;c++) trawa[c]=tab[c]; while(ilosc_skoszen--) { suma=0; read(&dni_koszen); read(&skoszenia); dni=dni_koszen-dzien; dzien=dni_koszen; for(b=0;b<gatunki;b++) { trawa[b]+=tab[b]*dni; } for(d=0;d<gatunki;d++) { if(trawa[d]>skoszenia) { suma+=trawa[d]-skoszenia; trawa[d]=skoszenia; } } printf("%llu\n",suma); } return 0; } |
English