Function「ZJOI2009」
题意
略
思路
很容易想到第一层为\(n\),然后第\(k\)层为\((n-k+1)*2\)
但是这个图可以倒过来,所以说要取头尾最小值。
过 于 恶 臭
代码
#include <bits/stdc++.h>
using namespace std;
namespace StandardIO {
template<typename T> inline void read (T &x) {
x=0;T f=1;char c=getchar();
for (; c<'0'||c>'9'; c=getchar()) if (c=='-') f=-1;
for (; c>='0'&&c<='9'; c=getchar()) x=x*10+c-'0';
x*=f;
}
template<typename T> inline void write (T x) {
if (x<0) putchar('-'),x=-x;
if (x>=10) write(x/10);
putchar(x%10+'0');
}
}
using namespace StandardIO;
namespace Solve {
int n,k;
inline void Main () {
read(n),read(k);
if (k==1||k==n) write(min(n,2));
else write(min((n-k+1)*2,k*2));
}
}
int main () {
Solve::Main();
}