using System;
namespace For39262
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine("Here we go...");
int[] A = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
int K = 3;
TaskNo1 taskNo1 = new TaskNo1(A, K);
try
{
int[] result = taskNo1.GetResult();
for (int i = 0; i < result.Length; i++)
{
Console.WriteLine(result[i]);
}
Console.WriteLine("Extracted elements: "
+ result.Length + "/" + A.Length);
}
catch (TaskException ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
public class TaskNo1
{
public readonly int[] A;
public readonly int N;
public readonly int K;
public TaskNo1(int[] a, int k)
{
A = a;
K = k;
N = A.Length;
}
public int[] GetResult()
{
// Проверка уловия для K
if (!IsInitialСonditionsSatisfied())
throw new TaskException("K is wrong");
// Определение длины массива для результата
int lengthOfResult = 0;
for (int i = 1; i <= N; i++)
{
if (isAmultipleFor(i, K))
{
lengthOfResult++;
}
}
int[] result = new int[lengthOfResult];
// Заполнение массива резульатами
int resultCounter = 0;
for (int i = 1; i <= N; i++)
{
if (isAmultipleFor(i, K))
{
int realIndex = i - 1;
result[resultCounter] = A[realIndex];
resultCounter++;
}
}
return result;
}
public bool IsInitialСonditionsSatisfied()
{
if (K < 1)
return false;
if (K > N)
return false;
return true;
}
public bool isAmultipleFor(int a, int b)
{
return a % b == 0;
}
}
internal class TaskException : ApplicationException
{
public TaskException(string message)
: base(message)
{
}
}
}
}
CQoKICAgIHVzaW5nIFN5c3RlbTsKICAgICAKICAgIG5hbWVzcGFjZSBGb3IzOTI2MgogICAgewogICAgICAgIGludGVybmFsIGNsYXNzIFByb2dyYW0KICAgICAgICB7CiAgICAgICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiSGVyZSB3ZSBnby4uLiIpOwogICAgIAogICAgICAgICAgICAgICAgaW50W10gQSA9IG5ld1tdIHsgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiB9OwogICAgICAgICAgICAgICAgaW50IEsgPSAzOwogICAgIAogICAgICAgICAgICAgICAgVGFza05vMSB0YXNrTm8xID0gbmV3IFRhc2tObzEoQSwgSyk7CiAgICAgCiAgICAgICAgICAgICAgICB0cnkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpbnRbXSByZXN1bHQgPSB0YXNrTm8xLkdldFJlc3VsdCgpOwogICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lkxlbmd0aDsgaSsrKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocmVzdWx0W2ldKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIkV4dHJhY3RlZCBlbGVtZW50czogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcmVzdWx0Lkxlbmd0aCArICIvIiArIEEuTGVuZ3RoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoIChUYXNrRXhjZXB0aW9uIGV4KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGV4Lk1lc3NhZ2UpOwogICAgICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAgICAgQ29uc29sZS5SZWFkKCk7CiAgICAgICAgICAgIH0KICAgICAKICAgICAgICAgICAgcHVibGljIGNsYXNzIFRhc2tObzEKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHVibGljIHJlYWRvbmx5IGludFtdIEE7CiAgICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaW50IE47CiAgICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaW50IEs7CiAgICAgCiAgICAgICAgICAgICAgICBwdWJsaWMgVGFza05vMShpbnRbXSBhLCBpbnQgaykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBID0gYTsKICAgICAgICAgICAgICAgICAgICBLID0gazsKICAgICAgICAgICAgICAgICAgICBOID0gQS5MZW5ndGg7CiAgICAgICAgICAgICAgICB9CiAgICAgCiAgICAgICAgICAgICAgICBwdWJsaWMgaW50W10gR2V0UmVzdWx0KCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAvLyDQn9GA0L7QstC10YDQutCwINGD0LvQvtCy0LjRjyDQtNC70Y8gSwogICAgICAgICAgICAgICAgICAgIGlmICghSXNJbml0aWFs0KFvbmRpdGlvbnNTYXRpc2ZpZWQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRhc2tFeGNlcHRpb24oIksgaXMgd3JvbmciKTsKICAgICAKICAgICAgICAgICAgICAgICAgICAvLyDQntC/0YDQtdC00LXQu9C10L3QuNC1INC00LvQuNC90Ysg0LzQsNGB0YHQuNCy0LAg0LTQu9GPINGA0LXQt9GD0LvRjNGC0LDRgtCwCiAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aE9mUmVzdWx0ID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBbXVsdGlwbGVGb3IoaSwgSykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aE9mUmVzdWx0Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgCiAgICAgICAgICAgICAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtsZW5ndGhPZlJlc3VsdF07CiAgICAgCiAgICAgICAgICAgICAgICAgICAgLy8g0JfQsNC/0L7Qu9C90LXQvdC40LUg0LzQsNGB0YHQuNCy0LAg0YDQtdC30YPQu9GM0LDRgtCw0LzQuAogICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRDb3VudGVyID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBOOyBpKyspCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBbXVsdGlwbGVGb3IoaSwgSykpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWFsSW5kZXggPSBpIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtyZXN1bHRDb3VudGVyXSA9IEFbcmVhbEluZGV4XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdENvdW50ZXIrKzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAKICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAgICAgcHVibGljIGJvb2wgSXNJbml0aWFs0KFvbmRpdGlvbnNTYXRpc2ZpZWQoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChLIDwgMSkKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgICAgICAgICAgICAgICAgIGlmIChLID4gTikKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgIAogICAgICAgICAgICAgICAgcHVibGljIGJvb2wgaXNBbXVsdGlwbGVGb3IoaW50IGEsIGludCBiKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBhICUgYiA9PSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgCiAgICAgICAgICAgIGludGVybmFsIGNsYXNzIFRhc2tFeGNlcHRpb24gOiBBcHBsaWNhdGlvbkV4Y2VwdGlvbgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwdWJsaWMgVGFza0V4Y2VwdGlvbihzdHJpbmcgbWVzc2FnZSkKICAgICAgICAgICAgICAgICAgICA6IGJhc2UobWVzc2FnZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCg==