Codeforces Round #575 (Div. 3)

Codeforces Round #575 (Div. 3)

A

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

typedef long long LL;
LL fff(LL a,LL b,LL c)
{
LL ans1=max(a,b);
LL ans2=min(a,b);
LL ans3=c-(ans1-ans2);
if(ans3<=0) return ans2+c;
else return ans1+ans3/2;
}
int main()
{
int q;
scanf("%d",&q);
while(q--){
LL a,b,c;
scanf("%lld %lld %lld",&a,&b,&c);
LL ans=0;
ans=max(ans,fff(a,b,c));
ans=max(ans,fff(a,c,b));
ans=max(ans,fff(b,a,c));
ans=max(ans,fff(b,c,a));
ans=max(ans,fff(c,b,a));
ans=max(ans,fff(c,a,b));
cout<<ans<<endl;
}

return 0;
}

B

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

int main()
{
int q;
scanf("%d",&q);
while(q--){
queue<int> a;
queue<int> b;
int ans;
int n,k;
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&ans);
if(ans%2==1)a.push(i);
}
if(a.size()<k){
printf("NO\n");
}else if(a.size()==k){
printf("YES\n");
while(!a.empty()&&a.size()>1){
cout<<a.front()<<" ";
a.pop();
}
printf("%d\n",n);
}else{
for(int i=1;i<k;i++){
b.push(a.front());
a.pop();
}
if(a.size()%2==0){
printf("NO\n");
}else{
printf("YES\n");
while(!b.empty()){
cout<<b.front()<<" ";
b.pop();
}
printf("%d\n",n);
}
}
}

return 0;
}

C

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

const int MAXN=1e5+100;
int x[MAXN];
int y[MAXN];
int f[MAXN][5];
int main()
{
int q;
scanf("%d",&q);
while(q--){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d %d %d %d %d %d",&x[i],&y[i],&f[i][1],&f[i][2],&f[i][3],&f[i][4]);
}
int lx=-1e5,rx=1e5,ly=-1e5,ry=1e5;
int flag=1;
for(int i=1;i<=n;i++){
if(f[i][1]==0) lx=max(lx,x[i]);
if(f[i][3]==0) rx=min(rx,x[i]);
if(f[i][4]==0) ly=max(ly,y[i]);
if(f[i][2]==0) ry=min(ry,y[i]);
if(lx>rx||ly>ry){
//cout<<"@@@"<<lx<<" "<<rx<<" "<<ly<<" "<<ry<<endl;
printf("0\n");
flag=0;
break;
}
}
if(flag){
if(lx<=1e5&&rx>=(-1e5)&&ly<=1e5&&ry>=(-1e5)){
printf("1 %d %d\n",lx,ly);
}else{
printf("0\n");
}
}
}

return 0;
}

D

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

const int MAXN=2e5+100;
int pre1[MAXN];
int pre2[MAXN];
int pre3[MAXN];
int main()
{
int q;
scanf("%d",&q);
while(q--){
int n,k;
scanf("%d %d",&n,&k);
string a;
cin>>a;
for(int i=0;i<a.length();i++){
if(i%3==0){
if(a[i]!='R') pre1[i+1]=pre1[i]+1;
else pre1[i+1]=pre1[i];
if(a[i]!='G') pre2[i+1]=pre2[i]+1;
else pre2[i+1]=pre2[i];
if(a[i]!='B') pre3[i+1]=pre3[i]+1;
else pre3[i+1]=pre3[i];
}else if(i%3==1){
if(a[i]!='G') pre1[i+1]=pre1[i]+1;
else pre1[i+1]=pre1[i];
if(a[i]!='B') pre2[i+1]=pre2[i]+1;
else pre2[i+1]=pre2[i];
if(a[i]!='R') pre3[i+1]=pre3[i]+1;
else pre3[i+1]=pre3[i];
}else if(i%3==2){
if(a[i]!='B') pre1[i+1]=pre1[i]+1;
else pre1[i+1]=pre1[i];
if(a[i]!='R') pre2[i+1]=pre2[i]+1;
else pre2[i+1]=pre2[i];
if(a[i]!='G') pre3[i+1]=pre3[i]+1;
else pre3[i+1]=pre3[i];
}
}
int ans=3e5+100;
for(int i=1;i<=n;i++){
int l=i,r=i+k-1;
int cnt1,cnt2,cnt3;
cnt1=pre1[r]-pre1[l-1];
cnt2=pre2[r]-pre2[l-1];
cnt3=pre3[r]-pre3[l-1];
if(r>n) break;
else{
ans=min(ans,cnt1);
ans=min(ans,cnt2);
ans=min(ans,cnt3);
}
}
cout<<ans<<endl;
}

return 0;
}

E

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

int main()
{
int q;
scanf("%d",&q);
while(q--){
int b,w;
scanf("%d %d",&b,&w);
int aa,bb,cc;
aa=min(b,w);
bb=max(b,w);
cc=aa*4-(aa-1);
if(bb>cc){
cout<<"NO"<<endl;
}else{
cout<<"YES"<<endl;
int l;
if(aa==b) l=3;
else l=2;
for(int i=l;i<l+2*aa;i++){
cout<<2<<" "<<i<<endl;
}
bb=bb-aa;
//cout<<"bb="<<bb<<endl;
if(bb){
for(int i=l;i<l+2*aa;i+=2){
cout<<1<<" "<<i<<endl;
bb--;
if(bb==0) break;
cout<<3<<" "<<i<<endl;
bb--;
if(bb==0) break;
}
if(aa==b){
if(bb) cout<<2<<" "<<2<<endl;
}else{
if(bb) cout<<2<<" "<<1<<endl;
}
}
}
}

return 0;
}



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