社区讨论

求助万能的谷民

P8791 [蓝桥杯 2022 国 AC] 内存空间参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m1vtjlub
此快照首次捕获于
2024/10/05 15:14
去年
此快照最后确认于
2025/11/04 18:00
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
#define ll unsigned long long
using namespace std;
int n;
int main()
{
//	freopen("memory.in","r",stdin);
//	freopen("memory.out","w",stdout);
	cin>>n;
	string a;
	ll ans=0;
	getchar();
	for(int i=1;i<=n;i++)
	{
		getline(cin,a);
		if(a.substr(0,5)=="int[]")
		{
			int t=0;
			bool f=0;
			for(int i=0;i<a.size()-1;i++)
			{
				if(a[i]=='[') f=1;
				else if(a[i]==']') f=0;
				else
				{
					if(a[i]>='0' && a[i]<='9' && f)
					{
						t*=10;
						t+=a[i]-'0';
						if(a[i+1]==']')
						{
							ans+=(t*4);
							t=0;
							f=0;
						}
					}
				}
			}
		}
		else if(a.substr(0,6)=="long[]")
		{
			int t=0;
			bool f=0;
			for(int i=0;i<a.size()-1;i++)
			{
				if(a[i]=='[') f=1;
				else if(a[i]==']') f=0;
				else
				{
					if(a[i]>='0' && a[i]<='9' && f)
					{
						t*=10;
						t+=a[i]-'0';
						if(a[i+1]==']')
						{
							ans+=(t*8);
							t=0;
							f=0;
						}
					}
				}
			}
		}
		else if(a.substr(0,3)=="int" && a.substr(0,5)!="int[]")
		{
			for(int i=0;i<a.size()-1;i++)
			{
				if(a[i]==',') ans+=4; 
			}
			ans+=4;
		}
		else if(a.substr(0,4)=="long" && a.substr(0,6)!="long[]") 
		{
			for(int i=0;i<a.size()-1;i++)
			{
				if(a[i]==',') ans+=8; 
			}
			ans+=8;
		}
		else if(a.substr(0,6)=="String")
		{
			bool f=0;
			int t=0;
			for(int i=0;i<a.size();i++)
			{
				if(a[i]=='"')
				{
					f=!f;
					t++;
				}
				else if(f)
				{
					t++;
				}
			}
			t-=2;
			ans+=t;
		}
	}
	int GB,MB,KB,B;
	GB=ans/1073741824;
	ans%=1073741824;
	MB=ans/1048576;
	ans%=1048576;
	KB=ans/1024;
	ans%=1024;
	B=ans;
	int h[10];
	h[1]=GB,h[2]=MB,h[3]=KB,h[4]=B;
	for(int i=1;i<=4;i++)
	{
		if(h[i]==0) continue;
		else
		{
			cout<<h[i];
			if(i==1) cout<<"GB";
			else if(i==2) cout<<"MB";
			else if(i==3) cout<<"KB";
			else if(i==4) cout<<"B";
		}
	}
	return 0;
}
样例过了,求调

回复

1 条回复,欢迎继续交流。

正在加载回复...