Submission #810571
Source Code Expand
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <cmath>
using namespace std;
int main()
{
int N, M;
cin >> N >> M;
int* A = new int[M];
int cnt = 0;
for(int i = 0; i < M; ++i)
{
cin >> A[i];
if(A[i]%2==1) ++cnt;
}
if(cnt==0)
{
// sequence a
for(int i = 0; i < M; ++i)
cout << A[i] << " ";
cout << "\n";
if(M==1)
{
// length of sequence b
cout << "2\n"
// sequence b
<< "1 " << A[0]-1 << endl;
}
else
{
// length of sequence b
cout << M << "\n";
// sequence b
cout << A[0]+1 << " ";
for(int i = 1; i < M-1; ++i)
cout << A[i] << " ";
cout << A[M-1]-1 << endl;
}
}
else if(cnt==1)
{
// sequence a
int odd;
for(int i = 0; i < M; ++i)
{
if(A[i]%2==0) cout << A[i] << " ";
else odd = A[i];
}
cout << odd << "\n";
if(N==odd)
{
if(odd==1) cout << "1\n" << "1" << endl;
else
{
// length of sequence b
cout << "2\n";
// sequence b
cout << "1 " << N-1 << endl;
}
}
else
{
// length of sequence b
cout << M << "\n";
// sequence b
cout << A[0]-1 << " ";
for(int i = 1; i < M; ++i)
if(A[i]%2==0) cout << A[i] << " ";
cout << odd+1 << "\n";
}
}
else if(cnt==2)
{
int odd1, odd2;
bool flag = true;
for(int i = 0; i < M; ++i)
{
if(A[i]%2!=0)
{
if(flag)
{
odd1 = A[i];
flag = false;
}
else odd2 = A[i];
}
}
if(odd1+odd2==N)
{
if(odd1==odd2 && odd1!=1)
{
cout << odd1 << " " << odd2 << "\n"
<< "2\n"
<< odd1-1 << " " << odd2+1 << endl;
}
else
{
cout << odd1 << " " << odd2 << "\n"
<< "1\n"
<< N << endl;
}
}
else
{
// sequence a
cout << odd1 << " ";
for(int i = 0; i < M; ++i)
if(A[i]%2==0) cout << A[i] << " ";
cout << odd2 << "\n";
if(odd2==1)
{
// length of sequence b
cout << M-1 << "\n";
// sequence b
cout << odd1+1 << " ";
for(int i = 0; i < M; ++i)
if(A[i]%2==0) cout << A[i] << " ";
cout << endl;
}
else
{
// length of sequence b
cout << M << "\n";
// sequence b
cout << odd1+1 << " ";
for(int i = 0; i < M; ++i)
if(A[i]%2==0) cout << A[i] << " ";
cout << odd2-1 << endl;
}
}
}
else // cnt>2
{
cout << "Impossible" << endl;
}
delete[] A;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Arrays and Palindrome |
| User | k_opt |
| Language | C++14 (GCC 5.4.1) |
| Score | 1000 |
| Code Size | 2884 Byte |
| Status | AC |
| Exec Time | 4 ms |
| Memory | 256 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt |
| All | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-01.txt | AC | 4 ms | 256 KiB |
| 01-02.txt | AC | 4 ms | 256 KiB |
| 01-03.txt | AC | 4 ms | 256 KiB |
| 01-04.txt | AC | 4 ms | 256 KiB |
| 01-05.txt | AC | 4 ms | 256 KiB |
| 01-06.txt | AC | 4 ms | 256 KiB |
| 01-07.txt | AC | 4 ms | 256 KiB |
| 01-08.txt | AC | 4 ms | 256 KiB |
| 01-09.txt | AC | 4 ms | 256 KiB |
| 01-10.txt | AC | 4 ms | 256 KiB |
| 01-11.txt | AC | 4 ms | 256 KiB |
| 01-12.txt | AC | 4 ms | 256 KiB |
| 01-13.txt | AC | 4 ms | 256 KiB |
| 01-14.txt | AC | 4 ms | 256 KiB |
| 01-15.txt | AC | 4 ms | 256 KiB |
| 01-16.txt | AC | 4 ms | 256 KiB |
| 01-17.txt | AC | 4 ms | 256 KiB |
| 01-18.txt | AC | 4 ms | 256 KiB |
| 01-19.txt | AC | 4 ms | 256 KiB |
| 01-20.txt | AC | 4 ms | 256 KiB |
| 01-21.txt | AC | 4 ms | 256 KiB |
| 01-22.txt | AC | 4 ms | 256 KiB |
| 01-23.txt | AC | 4 ms | 256 KiB |
| 01-24.txt | AC | 4 ms | 256 KiB |
| 01-25.txt | AC | 4 ms | 256 KiB |
| sample-01.txt | AC | 4 ms | 256 KiB |
| sample-02.txt | AC | 4 ms | 256 KiB |
| sample-03.txt | AC | 4 ms | 256 KiB |