昨天下午的 【MX-S4】梦熊 CSP-S 2024 模拟赛(同步赛)中,我被 @zy_plus_plus 抄袭了 T1 代码 ,我与他并非同一机房,可能是他不知以何手段获取了我的账号密码,我能证明我在比赛中无任何违规行为,且未向他人传递思路、代码。有没有可能申诉呢?要提供什么材料呢? 另外 @zy_plus_plus 在GDKOI 2023 普及组中有作弊前科。
附截图

附双方代码
这是我的
#include<bits/stdc++.h>
using namespace std;
//#pragma GCC optimize(3,"Ofast","inline")
// #define int long long
typedef long long ll;
const int mod=1e9+7;
const int N=2e5+50;
#define lc (u<<1)
#define rc (u<<1|1)
#define mid (l+r>>1)
#define ls lc,l,mid
#define rs rc,mid+1,r
#define root 1,1,n
int a[N],n,q;
long long w,sum;
struct segmentTree{
long long v,tag;
int len;
}tr[N<<2];
inline void pushup(int u){
tr[u].v=tr[lc].v+tr[rc].v;
}
inline void pushdown(int u){
if(tr[u].tag)tr[lc].v+=tr[u].tag*tr[lc].len,tr[rc].v+=tr[u].tag*tr[rc].len,tr[lc].tag+=tr[u].tag,tr[rc].tag+=tr[u].tag,tr[u].tag=0;
}
inline void build(int u,int l,int r){
if(l==r)return (void)(tr[u].len=1,tr[u].v=a[l],tr[u].tag=0);
tr[u].len=r-l+1;
build(ls);
build(rs);
pushup(u);
}
inline void update(int u,int l,int r,int s,int e,long long v){
if(s<=l&&r<=e){
tr[u].v+=tr[u].len*v;
tr[u].tag+=v;
return ;
}
pushdown(u);
if(s<=mid)update(ls,s,e,v);
if(e>mid)update(rs,s,e,v);
pushup(u);
}
inline int query(int u,int l,int r,long long v,long long tm){
pushdown(u);
if(l==r)return r;
if(tr[lc].v*tm<v)return query(rs,v-tr[lc].v*tm,tm);
else return query(ls,v,tm);
}
inline long long read(){
long long x=0;
char ch=0;
while(ch<'0'||ch>'9'){
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+(ch-'0');
ch=getchar();
}
return x;
}
signed main(){
// freopen("wxyt4.in","r",stdin);
// freopen("a.out","w",stdout);
long long pow2[105],sum=0;
pow2[0]=1;
for(int i=1;i<=62;++i)
pow2[i]=pow2[i-1]<<1;
n=read(),q=read(),w=read();
for(int i=1;i<=n;++i)a[i]=read(),sum+=a[i];
build(root);
while(q--){
int l,r,v,ans,res1=0;
long long tmp1;
l=read(),r=read(),v=read();
sum+=(r-l+1ll)*v;
update(root,l,r,v);
while((pow2[res1]-1)*sum<w)res1++;
res1--;
printf("%lld\n",1ll*res1*n+query(root,w-(pow2[res1]-1)*sum,pow2[res1])-1);
}
return 0;
}
/*
*/
/*
文件名: T1.cpp
创建时间: 2024-10-20 14:32:53
作者: nnn233
*/
这是 @zy_plus_plus 的
#include<bits/stdc++.h>
#define lc (u<<1)
#define rc (u<<1|1)
#define mid (l+r>>1)
#define ls lc,l,mid
#define rs rc,mid+1,r
#define root 1,1,n
using namespace std;
typedef long long ll;
const int mod=1e9+7;
const int N=2e5+50;
int a[N],n,q;
long long w,sum;
struct segmentTree{
long long v,tag;
int len;
}tr[N<<2];
inline void pushup(int u){
tr[u].v=tr[lc].v+tr[rc].v;
}
inline void pushdown(int u){
if(tr[u].tag)tr[lc].v+=tr[u].tag*tr[lc].len,tr[rc].v+=tr[u].tag*tr[rc].len,tr[lc].tag+=tr[u].tag,tr[rc].tag+=tr[u].tag,tr[u].tag=0;
}
inline void build(int u,int l,int r){
if(l==r)return (void)(tr[u].len=1,tr[u].v=a[l],tr[u].tag=0);
tr[u].len=r-l+1;
build(ls);
build(rs);
pushup(u);
}
inline void update(int u,int l,int r,int s,int e,long long v){
if(s<=l&&r<=e){
tr[u].v+=tr[u].len*v;
tr[u].tag+=v;
return ;
}
pushdown(u);
if(s<=mid)update(ls,s,e,v);
if(e>mid)update(rs,s,e,v);
pushup(u);
}
inline int query(int u,int l,int r,long long v,long long tm){
pushdown(u);
if(l==r)return r;
if(tr[lc].v*tm<v)return query(rs,v-tr[lc].v*tm,tm);
else return query(ls,v,tm);
}
inline long long read(){
long long x=0;
char ch=0;
while(ch<'0'||ch>'9'){
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+(ch-'0');
ch=getchar();
}
return x;
}
signed main(){
long long pow2[105],sum=0;
pow2[0]=1;
for(int i=1;i<=62;++i)
pow2[i]=pow2[i-1]<<1;
n=read(),q=read(),w=read();
for(int i=1;i<=n;++i)a[i]=read(),sum+=a[i];
build(root);
while(q--){
int l,r,v,ans,res1=0;
long long tmp1;
l=read(),r=read(),v=read();
sum+=(r-l+1ll)*v;
update(root,l,r,v);
while((pow2[res1]-1)*sum<w)res1++;
res1--;
printf("%lld\n",1ll*res1*n+query(root,w-(pow2[res1]-1)*sum,pow2[res1])-1);
}
return 0;
}