Codeforces Round #619 (Div. 2)(A~D)

A. Three Strings

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int main()
{
	string a,b,c;
	int t;
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>c;
		bool flag=1;
		for(int i=0;i<a.size();i++)
			if(c[i]!=a[i]&&c[i]!=b[i])
				{
					flag=0;
					break;
				}
		if(flag==1) 
			cout<<"YES"<<endl;
		else 
			cout<<"NO"<<endl;
	}
	return 0;
}

B. Motarack’s Birthday

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int n,s[N];
int main()
{
	string a,b,c;
	int t;
	cin>>t;
	while(t--)
	{
		cin>>n;
		int mn=0x3f3f3f3f,mx=0;
		for(int i=0;i<n;i++)
			cin>>s[i];
		int m=0,k;
		for(int i=0;i<n;i++)
		{
			if(s[i]==-1)
			{
				if(i>0&&s[i-1]!=-1) 
				{
					mn=min(s[i-1],mn);
					mx=max(s[i-1],mx);
				}
				if(i<n-1&&s[i+1]!=-1)
				{
					mn=min(s[i+1],mn);
					mx=max(s[i+1],mx);
				}
			}
			if(i&&s[i]!=-1&&s[i-1]!=-1) m=max(m,abs(s[i]-s[i-1])); 
		}
		if(mn==0x3f3f3f3f) 
			m=0,k=0;
		else
		{
			k=(mx+mn)/2;
			m=max(max(mx-k,k-mn),m);
		}
		cout<<m<<' '<<k<<endl;
	}
	
	return 0;
}

C. Ayoub’s function

#include<bits/stdc++.h>
using namespace std;
typedef  long long ll;
const int N=100010;
int t;
ll n,m;
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		ll k=n-m,ans=(n+1)*n/2;
		ll a=k/(m+1);
		ll b=k%(m+1);
		ans-=(((a+1)*a/2)*(m+1-b));
		ans-=(((a+2)*(a+1)/2)*b);
		cout<<ans<<endl;
	}
	return 0;
}

D. Time to Run

#include <bits/stdc++.h>
using namespace std;
vector<pair<int, char>> ans;
int n, m, k, cur;
void add(int f, char c) 
{
    if (f == 0 || cur == k)
    return;
    f = min(f, k - cur);
    ans.push_back({f, c});
    cur += f;
}
 
int main() 
{
    scanf("%d%d%d", &n, &m, &k);
    cur = 0;

    add(n-1, 'D');

    for(int j = 1; j < m; ++j) 
    {
        add(1, 'R');
        add(n-1, 'U');
        add(n-1, 'D');
    }
    add(m-1, 'L');
    
    for(int i = n-1; i >= 1; --i) 
    {
        add(1, 'U');
        add(m-1, 'R');
        add(m-1, 'L');
    }
 
    if (cur < k) 
    {
        puts("NO");
    } 
    else 
    {
        puts("YES");
        printf("%d\n", ans.size());
        for(auto e: ans) 
        printf("%d %c\n", e.first, e.second);
    }
 
  return 0;
}
发布了42 篇原创文章 · 获赞 5 · 访问量 2379

猜你喜欢

转载自blog.csdn.net/mumuhaoshuai/article/details/104308287