社区讨论
map模拟求条,玄关
P2366yyy2015c01 的 IDE 之 Watches参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mi0vhwv2
- 此快照首次捕获于
- 2025/11/16 06:43 4 个月前
- 此快照最后确认于
- 2025/11/16 13:40 4 个月前
代码:(0分)
CPP#include<bits/stdc++.h>
using namespace std;
long long n,f=0,c=0,f1=0;
string s,s1;
map<string,long long> m;
int main(){
cin>>n;
for(long long i=0;i<n;i++){
getline(cin,s,'=');
getline(cin,s1,';');
for(long long j=0;j<s1.length();j++){
if(s1[i]>='0' && s1[i]<='9'){
f=1;
}
if(s1[i]=='+'){
f1=1;
}
}
if(f==1){
for(long long j=0;j<s1.length();j++){
c *= 10;
c += int(s1[j]-'0');
}
m[s] = c;
}
else if(f1==1){
f1=0;
string a,b;
int a1=0,b1=0,x=0,y=0;
for(long long j=0;j<s1.length();j++){
if(s1[j]=='+'){
f1=1;
}
else if(f1==0){
if(s1[j]>='0' && s1[j]<='9'){
a1 = 1;
}
a += s1[j];
}
else{
if(s1[j]>='0' && s1[j]<='9'){
b1 = 1;
}
b += s1[j];
}
}
f1=0;
if(a1==1 && b1==1){
for(int j=0;j<s1.length();j++){
if(s1[j]=='+'){
f1=1;
}
if(f1==0){
x = x*10+int(s1[j]-'0');
}
else{
y = y*10+int(s1[j]-'0');
}
}
m[s] = x+y;
}
else if(a1==1 && b1==0){
for(int j=0;j<s1.length();j++){
if(s1[j]=='+'){
f1=1;
}
if(f1==0){
x = x*10+int(s1[j]-'0');
}
}
m[s] = x+m[b];
}
else if(a1==0 && b1==1){
for(int j=0;j<s1.length();j++){
if(s1[j]=='+'){
f1=1;
}
else{
y = y*10+int(s1[j]-'0');
}
}
m[s] = m[a]+y;
}
else{
m[s] = m[a]+m[b];
}
}
else{
m[s] = m[s1];
}
}
for(auto it=m.begin();it!=m.end();it++){
cout<<it->first<<' '<<it->second<<endl;
}
return 0;
}
帮条闭关,谢谢!
回复
共 0 条回复,欢迎继续交流。
正在加载回复...