求调
查看原帖
求调
431095
Druid楼主2024/7/13 14:03
#include <bits/stdc++.h>
using namespace std;
long long n,m,a[128];
int ans[64],t1=1;
void sum(int a,int i)
{
	int ad[64],t=1;
	memset(ad,0,sizeof ad);
	ad[1]=a;
	for(;i>0;i--)
	{
		for(int j=1;j<=t;j++)
		{
			ad[j]=ad[j]*2;
		}
		for(int j=1;j<=t;j++)
		{
			if(ad[j]>=100000)
			{
				ad[j+1]+=ad[j]/100000;
				ad[j]=ad[j]%100000;
				t=max(t,j+1);
			}
		}
	}
	t1=max(t1,t);
	for(;t>0;t--)
	{
		ans[t]=ans[t]+ad[t];
		if(ans[t]>=100000)
		{
			ans[t+1]+=ans[t]/100000;
			ans[t]=ans[t]%100000;
			t1=max(t1,t+1);
		}
	}
	return;
}
int main()
{
	cin>>n>>m;
	for(;n>0;n--)
	{
		for(int i=1;i<=m;i++)
		{
			cin>>a[i];
		}
		int i=1,l=1,r=m;
		while(i<=m)
		{
			if(a[l]<a[r])
			{
				sum(a[l],i);
				l++;
			}
			else
			{
				sum(a[r],i);
				r--;
			}
			i++;
		}
	}
	cout<<ans[t1];
	t1--;
	for(;t1>0;t1--)
	{
		if(ans[t1]/10000==0)
		{
			cout<<0;
			if(ans[t1]/1000==0)
			{
				cout<<0;
				if(ans[t1]/100==0)
				{
					cout<<0;
					if(ans[t1]/10==0)
					{
						cout<<0;
					}
				}
			}
		}
		cout<<ans[t1];
	}
	return 0;
}
2024/7/13 14:03
加载中...