我的代码蓝桥杯满分,到洛谷来一分没有,哪位大佬来帮忙看看是什么问题
查看原帖
我的代码蓝桥杯满分,到洛谷来一分没有,哪位大佬来帮忙看看是什么问题
831229
_Sykes_楼主2024/5/10 17:06
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
	int T;
	int b=0,kb=0,mb=0,gb=0;
	string s[13];
	cin >> T;
    getchar();
	for(int i=1;i<=T;i++){
		getline(cin,s[i]);
	}for(int i=1;i<=T;i++){
		if(s[i][0]=='i'){
			if(s[i][3]=='['){//遍历方括号记录里面的数字
				int t=0,tp=0;//0为方括号外,1为方括号内,tp记录方括号内数字 
				for(int j=4;j<s[i].length();j++){
					if(t==1&&s[i][j]!=']'){ tp*=10; tp+=s[i][j]-'0';}
					if(t==0&&s[i][j]=='['){ t=1; tp=0;}
					else if(t==1&&s[i][j]==']'){ t=0; b+=tp*4;}
				}
			}else{//遍历找逗号分号
				int t=0; 
				for(int j=4;j<s[i].length();j++){
					if(s[i][j]==','||s[i][j]==';')t++;
				}b+=t*4;
			}
		}else if(s[i][0]=='l'){
			if(s[i][4]=='['){
				int t=0,tp=0;
				for(int j=5;j<s[i].length();j++){
					if(t==1&&s[i][j]!=']'){ tp*=10; tp+=s[i][j]-'0';}
					if(t==0&&s[i][j]=='['){ t=1; tp=0;}
					else if(t==1&&s[i][j]==']'){ t=0; b+=tp*8;}
				}
			}else{
				int t=0; 
				for(int j=4;j<s[i].length();j++){
					if(s[i][j]==','||s[i][j]==';')t++;
				}b+=t*8;
			}
		}else if(s[i][0]=='S'){
			int t=0,tp;//0为引号外,1为引号内,tp计数 
			for(int j=6;j<s[i].length();j++){//遍历找引号并记录引号中的字符数
				if(t==1)tp++;
				if(t==0&&s[i][j]=='"'){ t=1; tp=0;}
				else if(t==1&&s[i][j]=='"'){ t=0; b+=tp-1;}
			}
		}
		kb+=b/1024; b%=1024; mb+=kb/1024; kb%=1024; gb+=mb/1024; kb%=1024;
	}
	
	if(gb!=0)cout << gb << "GB";
	if(mb!=0)cout << mb << "MB";
	if(kb!=0)cout << kb << "KB";
	if(b!=0)cout << b << 'B';
    return 0;
}
2024/5/10 17:06
加载中...