#define _CRT_SECURE_NO_WARNINGS 1.
#include <bits/stdc++.h>
using namespace std;
string s;
int a[10], b[10];
bool check(int a, int b) {
return a > b;
}
void solve() {
//长
for (int i = 1; i < 10; i++) {
a[i] = a[i - 1] / 2;
}
for (int i = 0; i < 10; i++)
b[i] = 841;
if (check(a[s[1] - '0'], b[s[1] - '0'])) {
cout << a[s[1 - '0']] << endl << b[s[1] - '0'] << endl;
} else {
cout << b[s[1] - '0'] << endl << a[s[1] - '0'] << endl;
}
}
int main() {
cin >> s;
a[0] = 1189;
solve();
return 0;
}
也就是只过了给的两个样例,后面的数据都没过,说明整体逻辑可能出了问题。其实观察样例发现当前Ai的长其实上A[i-1]的宽,A[i]的宽其实是A[i-1]的长/2,我理解错题意了,修改之后就过了:
#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
#define length first
#define width second
vector<PII>v(10);
int main() {
string s;
cin >> s;
v[0].length = 1189, v[0].width = 841;
for (int i = 1; i < 10; i++) {
v[i].width = v[i - 1].length / 2;
v[i].length = v[i - 1].width;
}
cout << v[s[1] - '0'].length << endl << v[s[1] - '0'].width << endl;
return 0;
}