From 071507ff37c4526c29c02e689137780d3519d7f9 Mon Sep 17 00:00:00 2001 From: Paulo Custodio Date: Fri, 17 Nov 2023 18:27:23 +0000 Subject: Add Perl, C and C++ solutions --- challenge-240/paulo-custodio/cpp/ch-2.cpp | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 challenge-240/paulo-custodio/cpp/ch-2.cpp (limited to 'challenge-240/paulo-custodio/cpp/ch-2.cpp') diff --git a/challenge-240/paulo-custodio/cpp/ch-2.cpp b/challenge-240/paulo-custodio/cpp/ch-2.cpp new file mode 100644 index 0000000000..9487ed0fea --- /dev/null +++ b/challenge-240/paulo-custodio/cpp/ch-2.cpp @@ -0,0 +1,53 @@ +/* +Challenge 240 + +Task 2: Build Array +Submitted by: Mohammad S Anwar + +You are given an array of integers. + +Write a script to create an array such that new[i] = old[old[i]] where 0 <= i < new.length. +Example 1 + +Input: @int = (0, 2, 1, 5, 3, 4) +Output: (0, 1, 2, 4, 5, 3) + +Example 2 + +Input: @int = (5, 0, 1, 2, 3, 4) +Output: (4, 5, 0, 1, 2, 3) +*/ + +#include +#include +using namespace std; + +int main(int argc, char* argv[]) { + if (argc < 2) { + cerr << "Usage: ch-2 n n n ..." << endl; + exit(EXIT_FAILURE); + } + + vector olds; + vector news; + + // parse args + for (int i = 1; i < argc; i++) { + int n = atoi(argv[i]); + olds.push_back(n); + } + + // process + for (size_t i = 0; i < olds.size(); i++) { + int n = olds[olds[i]]; + news.push_back(n); + } + + // output + const char* sep = ""; + for (size_t i = 0; i < news.size(); i++) { + cout << sep << news[i]; + sep = " "; + } + cout << endl; +} -- cgit