Codeforces Round #585 (Div. 2)

Codeforces Round #585 (Div. 2)

A

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

int a[10],k[10];
int main()
{
scanf("%d%d",&a[1],&a[2]);
scanf("%d%d",&k[1],&k[2]);
int n;
scanf("%d",&n);
int minn=a[1]*(k[1]-1)+a[2]*(k[2]-1);
if(minn>=n){
printf("0 ");
}else{
int y=n-minn;
printf("%d ",y);
}
if(k[1]<=k[2]){
int maxx=a[1]*k[1];
if(maxx>=n){
int ans=n/k[1];
printf("%d\n",ans);
}else{
int ans=0;
int y=n-maxx;
ans+=y/k[2];
if(ans>a[2]){
printf("%d\n",a[2]+a[1]);
}else{
printf("%d\n",a[1]+ans);
}
}
}else{
int maxx=a[2]*k[2];
if(maxx>=n){
int ans=n/k[2];
printf("%d\n",ans);
}else{
int ans=0;
int y=n-maxx;
ans+=y/k[1];
if(ans>a[1]){
printf("%d\n",a[1]+a[2]);
}else{
printf("%d\n",a[2]+ans);
}
}
}

return 0;
}

B

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

typedef long long LL;
const int MAXN=2e5+100;
LL ne[MAXN],po[MAXN];
LL pre[MAXN];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
if(a<0){
if(i==1){
pre[i]=0;
}else{
if(pre[i-1]==0) pre[i]=1;
else pre[i]=0;
}
}else{
if(i==1){
pre[i]=1;
}else{
if(pre[i-1]==0) pre[i]=0;
else pre[i]=1;
}
}
}
for(int i=1;i<=n;i++){
if(pre[i]==0){
ne[i]=ne[i-1]+1;
po[i]=po[i-1];
}else{
ne[i]=ne[i-1];
po[i]=po[i-1]+1;
}
}
/*
cout<<"!!!!"<<endl;
for(int i=1;i<=n;i++) cout<<po[i]<<" ";
cout<<endl;
for(int i=1;i<=n;i++) cout<<ne[i]<<" ";
cout<<endl;
cout<<"!!!!"<<endl;
*/
LL z=0,f=0;
for(int i=1;i<=n;i++){
if(pre[i]==0){
if(i==1) f++;
else{
f++;
f+=po[i-1];
z+=ne[i-1];
}
}else{
if(i==1) z++;
else{
z++;
z+=po[i-1];
f+=ne[i-1];
}
}
}
printf("%lld %lld\n",f,z);
return 0;
}

C

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

const int MAXN=2e5+100;
char s[MAXN],t[MAXN];
int ss[MAXN],tt[MAXN];
int f[MAXN];
int main()
{
int n;
scanf("%d",&n);
scanf("%s",s+1);
scanf("%s",t+1);
int now=0,nowid=0;
char nowl;
int k=0;
for(int i=1;i<=n;i++){
if(s[i]==t[i]) continue;
else{
if(now==0){
now++;
nowid=i;
nowl=s[i];
}else{
if(nowl==t[i]){
int idd=0;
for(int j=i+1;j<=n;j++){
if(s[j]==t[j]) continue;
if(nowl==t[j]) continue;
idd=j;
break;
}
if(idd){
k++;
ss[k]=nowid,tt[k]=idd;
swap(s[nowid],t[idd]);
i--;
}else{
k++;
ss[k]=i,tt[k]=i;
k++;
ss[k]=nowid,tt[k]=i;
}
}else{
k++;
ss[k]=nowid,tt[k]=i;
}
now=0;
}
}
}
if(now) printf("-1\n");
else{
printf("%d\n",k);
for(int i=1;i<=k;i++){
printf("%d %d\n",ss[i],tt[i]);
}
}
return 0;
}

D

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

const int MAXN=2e5+100;
char s[MAXN];
int main()
{
int n;
scanf("%d",&n);
scanf("%s",s+1);
int flag=0;
int pre=0,suf=0;
int cnt=0;
int wp=0,ws=0;
for(int i=1;i<=n;i++){
if(s[i]>='0'&&s[i]<='9'){
cnt++;
flag=1;
if(i<=(n/2)){
wp++;
pre+=s[i]-'0';
}else{
ws++;
suf+=s[i]-'0';
}
}
}
wp=n/2-wp;
ws=n/2-ws;
if(flag==0){
printf("Bicarp\n");
}else{
if(cnt==n){
if(suf==pre){
printf("Bicarp\n");
}else{
printf("Monocarp\n");
}
}else{
for(int i=1;;i++){
if(wp==0&&ws==0) break;
if(pre>=suf){
if(wp>0){
wp--;
if(i%2) pre+=9;
else pre+=0;
}else{
if(ws>0){
ws--;
if(i%2) suf+=0;
else suf+=9;
}
}
}else{
if(ws>0){
ws--;
if(i%2) suf+=9;
else suf+=0;
}else{
if(wp>0){
wp--;
if(i%2) pre+=0;
else pre+=9;
}
}
}
}
if(pre==suf) printf("Bicarp\n");
else printf("Monocarp\n");
}
}

return 0;
}



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