您的位置:首页 > 其它

Codeforces 660B Seating On Bus 【模拟】

2016-04-13 22:05 387 查看
题目链接:Codeforces 660B Seating On Bus

B. Seating On Bus

time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

Consider 2n rows of the seats in a bus. n rows of the seats on the left and n rows of the seats on the right. Each row can be filled by two people. So the total capacity of the bus is 4n.

Consider that m (m ≤ 4n) people occupy the seats in the bus. The passengers entering the bus are numbered from 1 to m (in the order of their entering the bus). The pattern of the seat occupation is as below:

1-st row left window seat, 1-st row right window seat, 2-nd row left window seat, 2-nd row right window seat, … , n-th row left window seat, n-th row right window seat.

After occupying all the window seats (for m > 2n) the non-window seats are occupied:

1-st row left non-window seat, 1-st row right non-window seat, … , n-th row left non-window seat, n-th row right non-window seat.

All the passengers go to a single final destination. In the final destination, the passengers get off in the given order.

1-st row left non-window seat, 1-st row left window seat, 1-st row right non-window seat, 1-st row right window seat, … , n-th row left non-window seat, n-th row left window seat, n-th row right non-window seat, n-th row right window seat.

The seating for n = 9 and m = 36.

You are given the values n and m. Output m numbers from 1 to m, the order in which the passengers will get off the bus.

Input

The only line contains two integers, n and m (1 ≤ n ≤ 100, 1 ≤ m ≤ 4n) — the number of pairs of rows and the number of passengers.

Output

Print m distinct integers from 1 to m — the order in which the passengers will get off the bus.

Examples

input

2 7

output

5 1 6 2 7 3 4

input

9 36

output

19 1 20 2 21 3 22 4 23 5 24 6 25 7 26 8 27 9 28 10 29 11 30 12 31 13 32 14 33 15 34 16 35 17 36 18

题意:m个人,给定一个座位号,输出下车顺序。

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#define ll o<<1
#define rr o<<1|1
#define CLR(a, b) memset(a, (b), sizeof(a))
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int INF = 0x3f3f3f3f;
int l1[110], l2[110], r2[110], r1[110];
int main()
{
int n, m;
while(scanf("%d%d", &n, &m) != EOF) {
int s = 1;
for(int i = 1; i <= n; i++) {
l1[i] = s;
s += 2;
}
for(int i = 1; i <= n; i++) {
l2[i] = s;
s += 2;
}
s = 2;
for(int i = 1; i <= n; i++) {
r1[i] = s;
s += 2;
}
for(int i = 1; i <= n; i++) {
r2[i] = s;
s += 2;
}
int use = 0;
for(int i = 1; i <= n; i++) {
if(l2[i] <= m) {
if(use) printf(" ");
use++;
printf("%d", l2[i]);
}
if(l1[i] <= m) {
if(use) printf(" ");
use++;
printf("%d", l1[i]);
}
if(r2[i] <= m) {
if(use) printf(" ");
use++;
printf("%d", r2[i]);
}
if(r1[i] <= m) {
if(use) printf(" ");
use++;
printf("%d", r1[i]);
}
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: