The Engineer's Thing






   Warmup Challenges






Problem:Simple Array Sum

Solve me



Concept you will be mostly using: For Loop

Solution:

C:



int main(){
int number_of_elements;
int i;
scanf("%d", &number_of_elements);
int array[number_of_elements];
int sum_of_array = 0;
for(i = 0; i < number_of_elements; i++){
scanf("%d", &array[i]);
sum_of_array += array[i];
}
printf("%d\n", sum_of_array);
return 0;
}

C++:

using namespace std;
int main(){
int number_of_elements;
cin >> number_of_elements;
vector array(number_of_elements);
int sum_of_array = 0;
for(int i = 0; i < number_of_elements; i++){
cin >> array[i];
sum_of_array += array[i];
}
cout << sum_of_array;
return 0;
}




JAVA:



import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int numberOfElements = in.nextInt();
int array[] = new int[numberOfElements];
int sumOfArray = 0;
for(int i = 0; i < numberOfElements; i++) {
array[i] = in.nextInt();
sumOfArray += array[i];
}
System.out.println(sumOfArray);
in.close();
}
}




Problem:Compare the Triplets

Solve me



Concept you will be mostly using: If-Else

Solution:

C:



int a_triplet[3], b_triplet[3];
int alice_points = 0;
int bob_points = 0;
int main() {
for (int i = 0; i < 3; i++) {
scanf("%d", &a_triplet[i]);
}
for (int i = 0; i < 3; i++) {
scanf("%d", &b_triplet[i]);
}
for(int i = 0; i < 3; i++) {
if (a_triplet[i] > b_triplet[i]) alice_points++;
if (a_triplet[i] < b_triplet[i]) bob_points++;
}
printf("%d %d\n", alice_points, bob_points);
return 0;
}



C++:

using namespace std;
int main(){
vector a_triplet(3);
vector b_triplet(3);
int alice_points = 0;
int bob_points = 0;
for (int i = 0; i < 3; i++) {
cin >> a_triplet[i];
}
for (int i = 0; i < 3; i++) {
cin >> b_triplet[i];
}
for(int i = 0; i < 3; i++) {
if (a_triplet[i] > b_triplet[i]) alice_points++;
if (a_triplet[i] < b_triplet[i]) bob_points++;
}
cout << alice_points << " " << bob_points << endl;
return 0;
}



JAVA:



public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] a_triplet = new int[3];
int[] b_triplet = new int[3];
for (int i = 0; i < 3; i++) {
a_triplet[i] = in.nextInt();
}
for (int i = 0; i < 3; i++) {
b_triplet[i] = in.nextInt();
}
int alice_points = 0;
int bob_points = 0;
for (int i = 0; i < 3; i++) {
if (a_triplet[i] > b_triplet[i]) {
alice_points += 1;
} else if (a_triplet[i] < b_triplet[i]) {
bob_points += 1;
}
}
System.out.printf("%d %d", alice_points, bob_points);
}
}




Problem:A Very Big Sum

Solve me



Concept you will be mostly using: Long data type

Solution:



C:


int main(){
long int arr[10],sum=0;
int N,i;
scanf("%d",&N);
for(i=0;i {
scanf("%ld",&arr[i]);
}
for(i=0;i {
sum=sum+arr[i];
}
printf("%ld",sum);
return 0;
}



C++:



using namespace std;
int main() {
int number_of_elements;
cin >> number_of_elements;
vector array(number_of_elements);
for (int i = 0; i < number_of_elements; i++) {
cin >> array[i];
}
long long int sum_of_numbers = 0;
for (int i = 0; i < number_of_elements; i++) {
sum_of_numbers += array[i];
}
cout << sum_of_numbers << endl;
return 0;
}




JAVA:



import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int numberOfElements = in.nextInt();
long sumOfNumbers = 0L;
for (int i = 0; i < numberOfElements; i++) {
sumOfNumbers += in.nextLong();
}
in.close();
System.out.println(sumOfNumbers);
}
}




Problem:Diagnol Difference

Solve me



Concept you will be mostly using:Two Dimensional arrays

Solution:

C:


int main(){
int n,a_i,diff=0,s1=0,s2=0;
scanf("%d",&n);
int a[n][n];
for(int a_i = 0; a_i < n; a_i++){
for(int a_j = 0; a_j < n; a_j++){
scanf("%d",&a[a_i][a_j]);
}
}
for(a_i=0;a_i {
s1=s1+a[a_i][a_i];
s2=s2+a[a_i][n-1-a_i];
}
diff=abs(s1-s2);
printf("%d",diff);
return 0;
}



C++



using namespace std;
int main() {
int n;
cin >> n;
int arr[n][n];
long long int d1=0; //First Diagonal
long long int d2=0; //Second Diagonal
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> arr[i][j];
if (i == j) d1 += arr[i][j];
if (i == n - j - 1) d2 += arr[i][j];
}
}
cout << abs(d1 - d2) << endl; //Absolute difference of the sums across the diagonals
return 0;
}






Problem:Plus Minus

Solve me



Concept you will be mostly using:If-else

Solution:

C:



int main(){
int n;
scanf("%d",&n);
int a[n],i;
float p=0,ne=0,z=0;
float pos,neg,zero;
for(i=0;i {
scanf("%d",&a[i]);
}
for(i=0;i {
if(a[i]>0)
p++;
else if(a[i]<0)
ne++;
else
z++;
}
pos=p/n;
neg=ne/n;
zero=z/n;v printf("%f\n%f\n%f",pos,neg,zero);
return 0;
}



C++



using namespace std;
int main() {
int n;
cin >> n;
float pl = 0, mn = 0, zr = 0;
for (int i = 0; i < n; i++) {
int val;
cin >> val;
zr += (val == 0);
pl += (val > 0);
mn += (val < 0);
}
zr = zr / (double)n;
pl = pl / (double)n;
mn = mn / (double)n;
printf("%0.06lf\n%0.06lf\n%0.06lf\n", pl, mn, zr);
return 0;
}



JAVA:



import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double numInputs = scan.nextDouble();
int posInputs = 0;
int negInputs = 0;
int zeroInputs = 0;
for(int i = 0; i < numInputs; i++){
int tmp = scan.nextInt();
if (tmp > 0){
posInputs++;
}
else if(tmp < 0){
negInputs++;
}
else{
zeroInputs++;
}
}
scan.close();
// Print result:
System.out.println(posInputs / numInputs);
System.out.println(negInputs / numInputs);
System.out.println(zeroInputs / numInputs);
}
}





Problem:Staircase

Solve me



Concept you will be mostly using:Loops

Solution:

C:



int main(){
int n;
scanf("%d",&n);
int i,j;
for(i=0;i {
for(j=0;j {
if(j printf(" ");
else
printf("#");
}
printf("\n");
}
return 0;
}



C++:



using namespace std;
int main () {
int height;
cin >> height;
for (int i = 1; i <= height; i++) {
for (int j = 0; j < i; j++) {
if(j==0) {
//Printing spaces
for(int t = 0; t < height - i; t++) cout << " ";
}
//Print hashes
cout << "#";
}
cout << endl;
}
return 0;
}



JAVA:



import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int numInputs = scan.nextInt();
scan.close();
for(int i = 1; i <= numInputs; i++){ // rows

int j = numInputs;
// loop to print (size - i) spaces
while(j-- > i) {
System.out.print(" ");
}
// loop to print (i) #s
while(j-- >= 0) {
System.out.print("#");
}
System.out.println();
}
}
}




Problem:Mini-Max Sum

Solve me



Concept you will be mostly using:Loops and if-else

Solution:

C:



int main(){
long int arr[5],i,sum,min=0,max=0;
for(i=1;i<=5;i++)
{
scanf("%ld",&arr[i]);
}
min=arr[1]+arr[2]+arr[3]+arr[4]+arr[5];
for(i=1;i<=5;i++)
{
sum=(arr[1]+arr[2]+arr[3]+arr[4]+arr[5])-arr[i];
if(sum>max)
{
max=sum;
}
if(min>sum)
{
min=sum;
}

}
printf("%ld %ld",min,max);
return 0;
}



JAVA:



import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long sum = 0;
long min = 1000000000;
long max = 0;
while(scan.hasNext()) {
long n = scan.nextLong();
sum = sum + n;
if (min > n) {
min = n;
}
if (max < n) {
max = n;
}
}
scan.close();
System.out.println((sum - max) + " " + (sum - min));
}
}




Problem:Time-Conversion

Solve me



Concept you will be mostly using:Strings

Solution:

C:


int main(){
int hh, mm, ss ;
char time[2];
scanf("%d:%d:%d%s", &hh, &mm, &ss, time) ;
if(strcmp(time,"PM")==0)
{
if(hh==12)
{
hh=12;
}
else
{
hh+=12;
}
}
if(strcmp(time,"AM")==0)
{ if(hh==12)
{
hh=abs(hh-12);
}
else{
hh=hh+0;
}
}
printf("%02d:%02d:%02d", hh, mm, ss) ;
return 0;
}



C++:



using namespace std;
int main() {
string s;
cin >> s;
int n = s.length();
int hh, mm, ss;
hh = (s[0] - '0') * 10 + (s[1] - '0');
mm = (s[3] - '0') * 10 + (s[4] - '0');
ss = (s[6] - '0') * 10 + (s[7] - '0');
if (hh < 12 && s[8] == 'P') hh += 12;
if (hh == 12 && s[8] == 'A') hh = 0;
printf("%02d:%02d:%02d\n", hh, mm, ss);
return 0;
}