using System;using System.Linq;publicclassEatingPlan{publicstaticintCountClean(int b,int p,int[] dishes){int answer = Math.Max(0, dishes.Count(d => d ==1)- b);
b = Math.Max(0, b - dishes.Count(d => d ==1));
p += b;
answer += Math.Max(0, dishes.Count(d => d ==2)- p);return answer;}}
答案2:
using System;using System.Linq;publicclassEatingPlan{publicstaticintCountClean(int b,int p,int[] dishes){return Math.Max(dishes.Count(d => d ==1)- b + Math.Max(dishes.Count(d => d ==2)- p,0),0);}}
答案3:
using System;using System.Linq;publicclassEatingPlan{publicstaticintCountClean(int b,int p,int[] dishes){// Throw out invalid inputif(b <1|| b >1000)thrownewArgumentException("Value must be between 1 and 1000","b");if(p <1|| p >1000)thrownewArgumentException("Value must be between 1 and 1000","p");if(dishes ==null|| dishes.Length ==0)thrownewArgumentException("Array must contain at least 1 element","dishes");if(dishes.Any(i => i !=1&& i !=2))thrownewArgumentException("Array values can only be 1 or 2","dishes");var bowlsNeeded = dishes.Count(i => i ==1);var washBowls = Math.Abs(Math.Min(0, b - bowlsNeeded));var platesNeeded = dishes.Count(i => i ==2);var washPlates = Math.Abs(Math.Min(0, Math.Max(0, b - bowlsNeeded)+ p - platesNeeded));return washBowls + washPlates;}}
答案4:
using System.Linq;publicclassEatingPlan{publicstaticintCountClean(int b,int p,int[] dishes ){var dishes1 = dishes.Count( d => d ==1);var dishes2 = dishes.Count( d => d ==2);var washCount =0;foreach(var dish in dishes ){if( dish ==1){if( b ==0){
washCount +=1;}else{
b -=1;}
dishes1 -=1;}elseif( dish ==2){if( b > dishes1 ){
b -=1;}else{if( p ==0){
washCount +=1;}else{
p -=1;}}
dishes2 -=1;}}return washCount;}}
Vasya和板【难度:1级】:答案1:using System;using System.Linq;public class EatingPlan { public static int CountClean(int b, int p, int[] dishes) { int answer = Math.Max(0, di...