import java.util.Arrays;
import java.util.Scanner;
public class sia {
public static void main(String[] args) {
int n,m,lday=0,cday=0,cut,gdays,cutindx=-1;
long w=0;
Scanner clintp = new Scanner(System.in);
n= clintp.nextInt();
m= clintp.nextInt();
int grow []=new int [n] ;
long hight[]=new long[n] ;
for(int tmp=0;tmp<n;tmp++){
grow[tmp]=clintp.nextInt();
hight[tmp]=0;
}
Arrays.sort(grow);
for(;m>0;m--){
cday= clintp.nextInt();
gdays=cday-lday;
lday=cday;
cut= clintp.nextInt();
for(int tmp=0;tmp<n;tmp++){
hight[tmp]+=gdays*grow[tmp];
if(cutindx==-1&&hight[tmp]>cut){
cutindx=tmp;
}
}
if(cutindx==-1)System.out.println(0);
else{
for(int tmp=cutindx;tmp<n;tmp++){
w+=hight[tmp]-cut;
hight[tmp]=cut;
}
System.out.println(w);
}
cutindx=-1;
w=0;
}
clintp.close();
}
}
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 | import java.util.Arrays; import java.util.Scanner; public class sia { public static void main(String[] args) { int n,m,lday=0,cday=0,cut,gdays,cutindx=-1; long w=0; Scanner clintp = new Scanner(System.in); n= clintp.nextInt(); m= clintp.nextInt(); int grow []=new int [n] ; long hight[]=new long[n] ; for(int tmp=0;tmp<n;tmp++){ grow[tmp]=clintp.nextInt(); hight[tmp]=0; } Arrays.sort(grow); for(;m>0;m--){ cday= clintp.nextInt(); gdays=cday-lday; lday=cday; cut= clintp.nextInt(); for(int tmp=0;tmp<n;tmp++){ hight[tmp]+=gdays*grow[tmp]; if(cutindx==-1&&hight[tmp]>cut){ cutindx=tmp; } } if(cutindx==-1)System.out.println(0); else{ for(int tmp=cutindx;tmp<n;tmp++){ w+=hight[tmp]-cut; hight[tmp]=cut; } System.out.println(w); } cutindx=-1; w=0; } clintp.close(); } } |
English