Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
30760 23级徐泽厚 【S】T3 C++ 解答错误 0 0 MS 268 KB 1368 2024-07-30 13:57:43

Tests(0/12):


#include <bits/stdc++.h> #define int long long using namespace std; int n,m; int father[200001],pain[200001]; int yl[200001]; signed main(){ scanf("%lld%lld",&n,&m); bool bk=0; bool bt=0; for (int i=2;i<=n;i++){ scanf("%lld",&father[i]); if (father[i]!=i-1) bk=1; if (father[i]!=1) bt=1; } if (bk==0){ while (m--){ int opt; scanf("%lld",&opt); if (opt==1){ int x,a,b; scanf("%lld%lld%lld",&x,&a,&b); for (int i=x+1;i<=n;i++){ if ((i-x)%2==1){ pain[i]-=(a+b*(i-x)); pain[i]%=1000000007; } else{ pain[i]+=(a+b*(i-x)); pain[i]%=1000000007; } } } else if (opt==2){ int x; scanf("%lld",&x); printf("%lld\n",pain[x]); } else{ int x; scanf("%lld",&x); for (int i=x;i<=n;i++){ pain[i]=0; } } } } else if (bt==0){ while (m--){ int opt; scanf("%lld",&opt); if (opt==1){ int x,a,b; scanf("%lld%lld%lld",&x,&a,&b); if (x==1){ for (int i=2;i<=n;i++){ pain[i]-=(a+b); pain[i]%=1000000007; } } } else if (opt==2){ int x; cin>>x; printf("%lld\n",pain[x]); } else{ int x; cin>>x; for (int i=x;i<=n;i++){ pain[i]=0; } } } } else{ printf("998244353\n"); } return 0; }


测评信息: