# UMDCTF2021 - Jay 1
- Write-Up Author: Wendy \[[MOCTF](https://www.facebook.com/MOCSCTF)\]
- Flag:UMDCTF-{K4d4n35_41g0r1thm}
## **Question:**Jay 1
![img](./img/1.png)
## Write upFirst, we run the program and identify the [Kadane’s algorithm](https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/) from the program description. Given an array and calculate the Maximum contiguous sum.
![img](./img/2.png)
Since we need to finish the calculation within 5 seconds, we have to write script to do it. Here we use pwn library for getting output and sending input from netcat.
```from pwn import *from sys import maxsize
def maxSubArraySum(a,size):     max_so_far = -maxsize - 1    max_ending_here = 0    start = 0    end = 0    s = 0     for i in range(0,size):         max_ending_here += int(a[i])         if max_so_far < max_ending_here:            max_so_far = max_ending_here            start = s            end = i         if max_ending_here < 0:            max_ending_here = 0            s = i+1     with open('result.txt', 'w') as f:		f.write("%d"%(max_so_far))		f.write(", ")		f.write("%d"%(start))		f.write(", ")		f.write("%d"%(end)) 
conn = remote('chals3.umdctf.io',6001,level='error')print conn.recvuntil("Press Enter to get the arr")conn.sendline("")#print conn.recvuntil("]")array = conn.recvuntil("]")array2 = array[3:-1]a = array2.split(', ')print aMaxCSum = maxSubArraySum(a,len(a))
file1 = open('result.txt', 'r')MaxCSum = file1.read()print MaxCSum
conn.sendline(MaxCSum)print conn.recvuntil("}")
```
![img](./img/3.png)
Finally, we got the flag!>UMDCTF-{K4d4n35_41g0r1thm}