Codeforces 1396 A

网友投稿 748 2022-11-17

Codeforces 1396 A

Codeforces 1396 A

​​传送门​​

题目大意

由n个正整数组成的数组a,执行下面操作三次后使得数组a元素全部变成0 选取一段区间[l.r],区间内的每个数都可以加上或减去区间长度(r-l+1)的倍数 输出这三次操作选取的区间及区间内每个数字变为几

思路

n=1时特判 当n>=2时,选取区间[2,n],使得每个数字都变成n的倍数就好,即a[i]*(n-1)+a[i]就是n的倍数

代码

ll a[maxn];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } if(n==1) { printf("1 1\n"); printf("%lld\n",-a[1]); printf("1 1\n"); printf("0\n"); printf("1 1\n"); printf("0\n"); return 0; } printf("1 1\n"); printf("%lld\n",-a[1]); a[1]=0; printf("2 %d\n",n); for(int i=2;i<=n;i++){ printf("%lld ",a[i]*(n-1)); a[i]=a[i]*n; } puts(""); printf("1 %d\n",n); for(int i=1;i<=n;i++){ printf("%lld ",-a[i]); } puts(""); return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:面试系统化学习和准备(二)——docker篇
下一篇:MyBatis中#{}和${}有哪些区别
相关文章

 发表评论

暂时没有评论,来抢沙发吧~