Codeforces Round #590 (Div. 3)

Codeforces Round #590 (Div. 3)

A

# include <bits/stdc++.h>
using namespace std;

int main()
{
int q;
scanf("%d",&q);
while(q--){
int n;
int sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
sum+=a;
}
int ans=0;
if(sum%n==0){
ans=sum/n;
}else{
ans=sum/n+1;
}
printf("%d\n",ans);
}

return 0;
}

B

# include <bits/stdc++.h>
using namespace std;

const int MAXN=2e5+100;
queue<int> qq;
map<int,int> mp;
int pr[MAXN];
int main()
{
int n,k;
int len=0,id;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&id);
if(mp[id]) continue;
else{
if(len<k){
len++;
qq.push(id);
mp[id]=1;
}else{
int now=qq.front();
mp[now]=0;
qq.pop();
qq.push(id);
mp[id]=1;
}
}
}
int ll=len;
while(!qq.empty()){
pr[ll]=qq.front();
qq.pop();
ll--;
}
printf("%d\n",len);
for(int i=1;i<=len;i++){
printf("%d ",pr[i]);
}
return 0;
}

C

# include <bits/stdc++.h>
using namespace std;

const int MAXN=2e5+100;
int s[MAXN],x[MAXN];
int main()
{
int q;
scanf("%d",&q);
while(q--){
int n;
scanf("%d",&n);
getchar();
for(int i=1;i<=n;i++){
char cc;
scanf("%c",&cc);
s[i]=cc-'0';
}
getchar();
for(int i=1;i<=n;i++){
char cc;
scanf("%c",&cc);
x[i]=cc-'0';
}
int flag=1;
int fflag=1;
for(int i=1;i<=n-1;i++){
if(flag){
if(s[i]>2){
if(x[i]<=2){
fflag=0;
break;
}else{
flag=0;
}
}
}else{
if(x[i]>2){
if(s[i]<=2){
fflag=0;
break;
}else{
flag=1;
}
}
}
}
//cout<<flag<<endl;
if(fflag==0){
printf("NO\n");
}else{
if(flag==1){
if(s[n]>2){
if(x[n]>2){
printf("YES\n");
}else{
printf("NO\n");
}
}else{
printf("NO\n");
}
}else{
if(x[n]<=2){
printf("YES\n");
}else{
printf("NO\n");
}
}
}
}
return 0;
}
/*
6
7
2323216
1615124
1
3
4
2
13
24
2
12
34
3
536
345
2
46
54

*/

D

# include <bits/stdc++.h>
using namespace std;

set<int> xx[26];
int main()
{
string s;
cin>>s;
int len=s.size();
for(int i=0;i<len;i++){
xx[s[i]-'a'].insert(i+1);
}
int q;
scanf("%d",&q);
while(q--){
int id;
scanf("%d",&id);
if(id==1){
int pos;
scanf("%d",&pos);
char c;
getchar();scanf("%c",&c);
xx[s[pos-1]-'a'].erase(pos);
xx[c-'a'].insert(pos);
s[pos-1]=c;
}else{
int l,r;
scanf("%d%d",&l,&r);
//cout<<"@@@@"<<endl;
int ans=0;
for(int i=0;i<26;i++){
if(xx[i].begin()==xx[i].end()) continue;
set<int>::iterator e,f;
e=xx[i].lower_bound(l);f=xx[i].lower_bound(r);
if(e!=xx[i].end()){
if(f==xx[i].end()) ans++;
else if(*e<=r&&*f>=l) ans++;
}
}
printf("%d\n",ans);
}
}
}



posted @ 2022-02-26 22:58  fengzlj  阅读(33)  评论(0)    收藏  举报