Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
121300 | mairuisheng | 序列变换 | C++ | 运行出错 | 0 | 51 MS | 8492 KB | 822 | 2024-01-21 16:32:57 |
#include<bits/stdc++.h> #define il inline #define ll long long using namespace std; const int N=1000005; il int gi() { int a=0; char x=getchar(); bool f=0; while((x<'0'||x>'9')&&x!='-')x=getchar(); if(x=='-')x=getchar(),f=1; while(x>='0'&&x<='9')a=a*10+x-48,x=getchar(); return f?-a:a; } ll a[N],n,m,tot[N]; int main() { n=gi(),m=gi(); for(int i=1;i<=n;i++)a[i]=gi(); int k,x,y; while(m--){ scanf("%lld",&k); if(k==2){x=gi(); ll ans=0; for(int i=1;i*i<=x;i++) if(x%i==0){i*i==x?ans+=tot[i]:ans+=tot[i]+tot[x/i];} printf("%lld\n",a[x]+ans); } else { x=gi();y=gi();tot[x]+=y; } } return 0; }