题解:P11061 【MX-X4-T1】「Jason-1」IO++
把这些语句分成三类:
-
输入语句:因为两个程序能实现相同功能需要的条件之中有
两个程序执行的输出语句次数相同。所以所有输出语句都不能变,只能想办法删掉一些输入语句。 -
在输出语句的最大值之后的输入语句:都可以删,因为他们根本用不上。很明显,这种语句的数量就是
sum-\max_{i=1}^n a_i ,其中,sum 是输入语句的总数。 -
而在这个最大值前面的:一个都不能删。如果删了一个,后面的补上来,之后匹配好输出语句的输入都位移了。
所以答案就是第二类语句的数量。
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int mx=0;
int sum=0;
for(int i=0;i<n;i++){
int x;
cin>>x;
if(x==0){
sum++;
}
else{
mx=max(mx,x);
}
}
cout<<n-(sum-mx);
}