社区讨论
求助!90pts
P14305 【MX-J27-T2】转换参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj06hny
- 此快照首次捕获于
- 2025/11/03 18:34 4 个月前
- 此快照最后确认于
- 2025/11/03 18:34 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+10;
int c, t;
string s;
int get1(int x) {
if (s[x - 1] == 'r' || s[x - 1] == 'l') return 1;
else if (s[x - 1] == 't') {
if (s[x - 2] == 'a') return 3;
else return 1;
} else if (s[x - 1] == 'g') return 2;
else return 4;
}
int get2(int x) {
if (s[x + 1] == 'i' || s[x + 1] == 'c' || s[x + 1] == 'b') return 1;
else if (s[x + 1] == 'l') return 2;
else if (s[x + 1] == 'f') return 3;
else return 4;
}
void change(int x) {
if (x == 1) cout << "int";
else if (x == 2) cout << "longlong";
else if (x == 3) cout << "float";
else if (x == 4) cout << "double";
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> c >> t;
while (t--) {
cin >> s;
int ans = 0;
int n = s.size();
int st = -1;
for (int i = 0; i < n; i++) {
if (s[i] == ',') st = i;
else if (s[i] == '*') s[i] = '+';
}
s.erase(0, st + 1);
n = s.size();
if (s == "bool" || s == "char") {
cout << s << "\n";
continue;
}
bool f = 1;
for (int i = 0; i < n; i++) {
if (s[i] == '+') {
int s1 = 0, s2 = 0;
if (f == 1) {
s1 = get1(i);
s2 = get2(i);
ans = max(s1, s2);
f = 0;
} else {
s2 = get2(i);
ans = max(ans, s2);
}
}
}
change(ans);
cout << "\n";
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...