Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98660 | CSYZZhangZH | Karry5307 | C++ | 运行出错 | 0 | 2 MS | 508 KB | 966 | 2023-08-16 12:15:13 |
#include<bits/stdc++.h> #define int long long using namespace std; const int N=5005; int a[N],n,m,b[N],t; int op[N],l[N],r[N],x[N]; int mp[N<<2]; signed main() { ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin>>n>>m; for(int i=1; i<=n; ++i) { cin>>a[i]; b[++t]=a[i]; } for(int i=1; i<=m; ++i) { cin>>op[i]; if(op[i]==1) { cin>>l[i]>>r[i]>>x[i]; b[++t]=x[i]; } else cin>>l[i]>>r[i]; } sort(b+1,b+t+1); int len=unique(b+1,b+t+1)-b-1; for(int i=1; i<=n; ++i) a[i]=lower_bound(b+1,b+len+1,a[i])-b; for(int i=1; i<=m; ++i) { if(op[i]==1) { x[i]=lower_bound(b+1,b+len+1,x[i])-b; } } for(int i=1; i<=m; ++i) { if(op[i]==1) { for(int j=l[i]; j<=r[i]; ++j) a[j]=x[i]; } else { int ans=0; for(int j=l[i]; j<=r[i]; ++j) { if(mp[a[j]]==0) ans++; mp[a[j]]++; } cout<<ans<<'\n'; for(int j=l[i]; j<=r[i]; ++j) mp[a[j]]--; } } return 0; }