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
AC × 3
AC × 28
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