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();
}
posted @ 2019-07-22 11:54  Ilverene  阅读(117)  评论(0编辑  收藏  举报