#! /usr/bin/env python

def sp(C, L):
    """
    Return the first pair of elements in `L` whose sum is exactly `C`.

    If no pair of elements match, returns `None`.
    """
    for i in range(len(L)):
        x = L[i]
        for j in range(i+1, len(L)):
            y = L[j]
            if x + y == C:
                return (x,y)
    return None


import unittest

class TestSP(unittest.TestCase):

    def test_sp_1(self):
        (x, y) = sp(100, [5, 75, 25])
        self.assertEqual((x,y), (75, 25))

    def test_sp_2(self):
        (x,y) = sp(200, [150,24,79,50,88,345,3])
        self.assertEqual((x,y), (150,50))

    def test_sp_3(self):
        (x,y) = sp(8, [2,1,9,4,4,56,90,3])
        self.assertEqual((x,y), (4,4))

    def test_sp_empty_list(self):
        self.assertEqual(sp(42,[]), None)

    def test_sp_impossible(self):
        self.assertTrue(sp(42,[100,200,300]) is None)


if __name__ == "__main__":
    unittest.main()

