Pinely Round 3 (Div. 1 + Div. 2)

Dashboard - Pinely Round 3 (Div. 1 + Div. 2) - Codeforces

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define db double
const int N=110;
int a,b;
 
void solve()
{
	int n;
	cin>>n;
	int x,y;
	int w=0,s=0,aa=0,d=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a>>b;
		w=max(w,b);
		s=min(s,b);
		d=max(d,a);
		aa=min(aa,a);
	}
	if(aa<0 && s<0 && w>0 && d>0) cout<<"NO"<<endl;
	else cout<<"YES"<<endl;
	
}
 
signed main()
{
	int t=1;
	cin>>t;
	while(t--) solve();
}

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=110;
int a[N];

void solve()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=60;i++)
	{
		unordered_set<int> s;
		int aa=1LL<<i;
		for(int j=1;j<=n;j++)
		{
			s.insert(a[j]%aa);
		}
		if(s.size()==2)
		{
			cout<<aa<<endl;
			return ;
		}
	}
}

signed main()
{
	int t=1;
	cin>>t;
	while(t--) solve();
}

 

#include<bits/stdc++.h>
using namespace std;
#define int long long
 
void solve()
{
	int n;
	cin>>n;
	vector<int> a(n);
	vector<int> b(n);
	vector<int> c(n);
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0;i<n;i++) cin>>b[i];
	for(int i=0;i<n;i++) cin>>c[i];
	sort(a.begin(),a.end());
	sort(b.begin(),b.end());
	sort(c.begin(),c.end());
	vector<int> d;
	int l=0,r=0;
	stack<int> sk;
	while(l!=n || r!=n)
	{
		if(l==n)
		{
			int z=sk.top();
			sk.pop();
			d.push_back(b[r]-z);
			r++;
			continue;
		}
		if(a[l]<b[r])
		{
			sk.push(a[l]);
			l++;
		}
		else {
			int z=sk.top();
			sk.pop();
			d.push_back(b[r]-z);
			r++;
		}
	}
	sort(d.begin(),d.end());
	int ans=0;
	for(int i=0;i<n;i++)
	{
		ans+=c[n-i-1]*d[i];
	}
	cout<<ans<<endl;
}
 
 
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t=1;
	cin>>t;
	while(t--) solve();
}

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

int gcd(int a,int b)
{
	return b?gcd(b,a%b):a;
}

int lcm(int a,int b)
{
	return a*b/gcd(a,b);
}

void solve()
{
	int n,k;
	cin>>n>>k;
	vector<int> arr(n);
	for(int i=0;i<n;i++) cin>>arr[i];
	sort(arr.begin(),arr.end());
	if(arr[0]==arr[n-1])
	{
		cout<<0<<endl;
		return;
	}
	int ans=0;
	int a=0,b=0;
	for(int i=0;i<n;i++)
	{
		if(arr[i]>k)
		{
			a++;
		}
		if(arr[i]<k)
		{
			b++;
		}
		if(arr[i]==k)
		{
			a=1,b=1;
			break;
		}
		if(ans==0) ans=abs(arr[i]-k);
		else ans=gcd(ans,abs(arr[i]-k));
	}
	if(a!=0 && b!=0)
	{
		cout<<-1<<endl;
		return;
	}
	int w=0;
	for(int i=0;i<n;i++)
	{
		w+=abs(arr[i]-k)/ans-1;
	}
	cout<<w<<endl;
}


signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t=1;
	cin>>t;
	while(t--) solve();
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值