idc托管,手机优化大师为什么扣钱,旅游电子商务 网站建设,长沙网站托管优化问题描述 有 n 个格子#xff0c;从左到右放成一排#xff0c;编号为 1-n。 共有 m 次操作#xff0c;有 3 种操作类型#xff1a; 1.修改一个格子的权值。 2.求连续一段格子权值和。 3.求连续一段格子的最大值。 对于每个 2、3 操作输出你所求出的结果。 输入格式 第一行 …问题描述 有 n 个格子从左到右放成一排编号为 1-n。 共有 m 次操作有 3 种操作类型 1.修改一个格子的权值。 2.求连续一段格子权值和。 3.求连续一段格子的最大值。 对于每个 2、3 操作输出你所求出的结果。 输入格式 第一行 2 个整数 nm。 接下来一行 n 个整数表示 n 个格子的初始权值。 接下来 m 行每行 3 个整数 p,x,yp 表示操作类型p1 时表示修改格子 x 的权值为 yp2 时表示求区间[x,y]内格子权值和p3 时表示求区间[x,y]内格子最大的 权值。 输出格式 有若干行行数等于 p2 或 3 的操作总数。 每行 1 个整数对应了每个 p2 或 3 操作的结果。 样例输入 4 3 1 2 3 4 2 1 3 1 4 3 3 1 4 样例输出 6 3
#includeiostream
using namespace std;void fz(int a[],int n,int x,int y)//赋值
{int i;for(i0;in;i){if(a[i]x){a[i]y;break;} }
} void sum(int a[],int n,int x,int y)
{int c,b,i,sum0;for(i0;in;i){if(a[i]x)ci;if(a[i]y)bi;}for(ic;ib;i)suma[i];coutsumendl;;
}void compare(int a[],int n,int x,int y)
{int max-1,i;for(i0;in;i)if(maxa[i])maxa[i];coutmaxendl;
}int main()
{int n,m,i;int a[100];//保存初始的权值 int p[100],x[100],y[100];//方便一次输入m行cinnm;for(i0;in;i)cina[i];for(i0;im;i)cinp[i]x[i]y[i];for(i0;im;i){if(p[i]1)fz(a,n,x[i],y[i]);if(p[i]2)sum(a,n,x[i],y[i]);if(p[i]3)compare(a,n,x[i],y[i]);}return 0;
}本质利用函数调用来实现各个功能充分体现设计模块化的原则。