Codeforces 534 A. Exam

简介:

题目链接:http://codeforces.com/contest/534/problem/A
题意大意:给出n个学生,编号为1~n,要求学生坐在一排并且相邻的学生编号相差不能为1,求出满足这样要求的最大学生数量并输出方案。
解题思路:除了1,2,3,4以外,其他的都要按照先找奇数,在排偶数。或者先排偶数,再排奇数。

#include <iostream>
using namespace std;
int main()
{
    int m;
    cin>>m;
    if(m == 1)
    {
        cout<<1<<endl;
        cout<<1<<endl;
        return 0;
    }
    if(m == 2)
    {
        cout<<1<<endl;
        cout<<1<<endl;//2也可以
        return 0;
    }
    if(m == 3)
    {
        cout<<2<<endl;
        cout<<1<<" "<<3<<endl;
        return 0;
    }
    if(m == 4)
    {
        cout<<4<<endl;
        cout<<2<<" "<<4<<" "<<1<<" "<<3<<endl;
       return 0;
    }
    cout<<m<<endl;
    cout<<1;
    for(int i=3; i<=m; i+=2)
        cout<<" "<<i;
    for(int i=2; i<=m; i+=2)
        cout<<" "<<i;
    cout<<endl;
    return 0;
}
/*
input
6
output
6
1 5 3 6 2 4
input
3
output
2
1 3
*/
目录
相关文章
|
5月前
codeforces
【6月更文挑战第10天】
30 0
codeforces 327 A Ciel and Dancing
给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1。 这里要注意很多细节 比如全为1,要求必须翻转,这时候我们只要翻转一个1就可以了,对于其他情况,我们只要计算区间里面如果0多于1,将其翻转后计算1的总数,然后取最大值。
40 0
codeforces 322 A Ciel and Dancing
有n个男孩和m个女孩,他们要结对跳舞,每对要有一个女孩和一个男孩,而且其中一个要求之前没有和其他人结对,求出最大可以结多少对。
35 0
|
C++
codeforces 305 C. Ivan and Powers of Two
我的思路是这样的,由2^a+2^a = 2^(a+1)可知,如果有两个连续的数a,我们可以把他们合并为a+1放入集合中,使集合中没有重复的数,我可以用stl里的set。如果想要满足题目中的要求,集合中必须有最大那个数个元素,缺多少就可以计算出来了。
29 0
C - Rumor CodeForces - 893C
C - Rumor CodeForces - 893C
85 0
Codeforces 591B Rebranding
B. Rebranding time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standard output ...
851 0
|
人工智能
Codeforces 777C Alyona and Spreadsheet
C. Alyona and Spreadsheet time limit per test:1 second memory limit per test:256 megabytes input:standard input output:standard ...
1153 0