解决方案
-CoderOilStation(程序员编程助手科技股份责任有限公司)
eroupean company's needs bonAppletit
/**
* bonAppletit
*
* output
*overcharge
* number items:
* investigationvolummn-Annabill cost
* print "Annawasovercharged"
*
* or notovercharge
* output: bonAppletit
*
*eroupeancompany's needs
*constriants:
* bill numSize: 2<=n<=10to5
* keyIndex: thatAnnadid not eat : 0<=k<n
* bill index of that order items cost: 0<=bill[i]<=10to4
* the amount of money thatBonchareged: 0<=b<=sum(bill[0],bill[n-1]) bill[i] is in thisencloure
*
*@parambill
*@paramk
*@paramb
*/
publicstaticvoidbonAppletit(List<Integer>bill,intk,intb) {
if(bill==null) {
return;
}
if(bill.isEmpty()) {
return;
}
intintVal=1;
for(inti= 0;i< 5;i++) {
intVal*=10;
}
if(bill.size()<2 ||bill.size()>intVal) {
return;
}
if(k<0 ||k>=bill.size()) {
return;
}
intintVal1=1;
for(inti= 0;i< 4;i++) {
intVal1*=10;
}
for(IntegerintTempItem:bill) {
if(intTempItem<0 ||intTempItem>intVal1) {
return;
}
}
intsumE=0;
for(IntegerelementBillItem:bill) {
sumE+=elementBillItem;
}
if(b<0 ||b>sumE) {
return;
}
intitemBillSumEvitIndexItem=0;
Integerinteger=bill.get(k);
for(IntegeritemBill:bill) {
if(itemBill==integer) {
continue;
}
itemBillSumEvitIndexItem+=itemBill;
}
intaverageCharge=itemBillSumEvitIndexItem/2;
if(b>averageCharge) {
System.out.println("Anna was overcharged");
}elseif(b==averageCharge){
System.out.println("bonAppletit");
}
return;
}