We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
-- Populate the table variable
INSERT INTO @CTE (RowNum, X, Y)
SELECT ROW_NUMBER() OVER (ORDER BY X, Y) AS RowNum, X, Y
FROM (SELECT DISTINCT X, Y FROM FUNCTIONS) AS DistinctFunctions;
DECLARE @RESULT TABLE(
X INT,
Y INT
)
SELECT @IMAXX=COUNT() FROM @CTE ;
SELECT @JMAXX=COUNT() FROM FUNCTIONS;
WHILE @IT <= @IMAXX
BEGIN
DECLARE @JT INT =1;
SELECT @X = X, @Y = Y
FROM @CTE
WHERE RowNum = @IT;
WHILE @JT <= @JMAXX
BEGIN
IF @X <= @Y
BEGIN
IF @X=@Y
BEGIN
SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X;
IF @COUNT>=2
BEGIN
INSERT INTO @RESULT VALUES(@X, @Y);
BREAK;
END
END
ELSE
BEGIN
SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X;
IF @COUNT>=1
BEGIN
INSERT INTO @RESULT VALUES(@X, @Y);
BREAK;
END
END
END
SET @JT+=1;
END
SET @IT+=1;
END
SELECT * FROM @RESULT;
go
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Symmetric Pairs
You are viewing a single comment's thread. Return to all comments →
SET NOCOUNT ON;
/* Enter your query here. Please append a semicolon ";" at the end of the query and enter your query in a single line to avoid error. */
DECLARE @X INT; DECLARE @Y INT; DECLARE @IT INT = 1; DECLARE @IMAXX INT; DECLARE @JMAXX INT; DECLARE @LINE VARCHAR(MAX)=''; DECLARE @COUNT INT =0;
DECLARE @CTE TABLE ( RowNum INT, X INT, Y INT );
-- Populate the table variable INSERT INTO @CTE (RowNum, X, Y) SELECT ROW_NUMBER() OVER (ORDER BY X, Y) AS RowNum, X, Y FROM (SELECT DISTINCT X, Y FROM FUNCTIONS) AS DistinctFunctions; DECLARE @RESULT TABLE( X INT, Y INT )
SELECT @IMAXX=COUNT() FROM @CTE ; SELECT @JMAXX=COUNT() FROM FUNCTIONS;
WHILE @IT <= @IMAXX BEGIN DECLARE @JT INT =1; SELECT @X = X, @Y = Y FROM @CTE WHERE RowNum = @IT; WHILE @JT <= @JMAXX BEGIN IF @X <= @Y BEGIN IF @X=@Y BEGIN SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X; IF @COUNT>=2 BEGIN INSERT INTO @RESULT VALUES(@X, @Y); BREAK; END END ELSE BEGIN SELECT @COUNT=COUNT() FROM FUNCTIONS WHERE X=@Y AND Y=@X; IF @COUNT>=1 BEGIN INSERT INTO @RESULT VALUES(@X, @Y); BREAK; END END END SET @JT+=1; END SET @IT+=1; END SELECT * FROM @RESULT; go