有没有什么好的思路分类讨论啊,我看AC的代码都很清奇。我自己打了一张a4正反面的样例,AC19个点,WA3个点,自己的代码打了很多补丁,比较丑陋,dalao勿喷
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<stack>
#include<set>
#define NDEBUG
#include <assert.h>
#include <time.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
#define debug(x)std::cout << "Line" << __LINE__ << " " << #x << "=" << x << std::endl
#define endl '\n'
#define rd read()
#define pb push_back
#define mst(a, b) memset((a), (b), sizeof(a));
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
#define mod ((int)1e9+7)
#define maxn (int)(1e5+5)
ll b, c, ans;
int main() {
cin >> b >> c;
if(b >= c || -b >= c) ans = 2 * c - 1;
else if(b < c) {
if(b == 0) ans = c;
else if(b > 0) ans = c + 2 * b - 1;
else if(b < 0) ans = c + 2 * (-b);
}
if((b == 1 || b == -1) && c == 1) ans = 2;
if((b == 1 || b == -1) && c == 2) ans = 3;
if((b == 1 || b == -1) && c == 3) ans = 4;
if(b != 0 && c == 1) ans = 2;
cout << ans << endl;
return 0;
}