1739B - Array Recovery - CodeForces Solution


constructive algorithms greedy

Please click on ads to support us..

Python Code:

import sys
m =  int(sys.stdin.readline())
for i in range(m):
   a= int(sys.stdin.readline().replace('\n',''))
   b= sys.stdin.readline().replace('\n','').split(' ')
   d = list()
   an =list()
   d.append(int(b[0]))
   an.append(int(b[0]))
   tyu = 0 
   for t in range(1,a):
      d.append(int(b[t]))
      s = list()
      for g in range(200):
         if int(b[t]) == abs( g - an[t-1]):
            s.append(g)
      if len(s) >= 2:
         print(-1)
         tyu =1
         break
      else:
         an.append(s[0])
   if tyu != 1:
      l = ''
      for p in range(len(an)-1):
         l+=str(an[p])+' '
      l+=str(an[-1])
      print(l)

C++ Code:

/******************************************************************************

Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.

*******************************************************************************/
#include <iostream>

using namespace std;

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
         int n;
         cin>>n;
         int arr[n];
         int d[n];
         for(int i=0;i<n;i++)
         {
             cin>>d[i];
         }
         bool valid =true;
         arr[0]=d[0];
         for(int i=1;i<n;i++)
         {
             int val1=arr[i-1]+d[i];
             int val2=arr[i-1]-d[i];
             if(val2<0 || val2==val1)
             {
                 arr[i]=val1;
             }
             else
             {
                 valid=false;
                 break;
             }
         }
         if(valid)
         {
             for(int i=0;i<n;i++)
             {
                 cout<<arr[i]<<" ";   
             }
             cout<<endl;
         }
         else
         {
             cout<<-1<<endl;
         }
    }

    return 0;
}


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST