社区讨论
求助万能的谷民
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 条回复,欢迎继续交流。
正在加载回复...