PHP Program to Count Pairs with Sum <= X with Explanation
PHP
Hard
PHP Control Flow
28 views
1 min read
89 words
This problem helps you practice core PHP fundamentals in a practical way. It builds intuition around count, pair, sum. Let’s break it down step by step so you can implement it confidently.
Problem Statement
Given a sorted array and X, count pairs (i
Input Format
Line1 n X. Line2 n sorted integers.
Output Format
One integer count.
Constraints
n
Code Solution
This explanation is written for learning purposes and to help beginners understand the concept clearly.
<?php
$inputText=trim(stream_get_contents(STDIN));
if($inputText==='') exit;
$tokens=preg_split('/\\s+/', $inputText);
$idx=0;
$n=intval($tokens[$idx++] ?? 0);
$x=intval($tokens[$idx++] ?? 0);
$a=[];
for($i=0;$i<$n;$i++) $a[] = intval($tokens[$idx++] ?? 0);
$l=0; $r=$n-1; $ans=0;
while($l<$r){
if($a[$l]+$a[$r] <= $x){
$ans += ($r-$l);
$l++;
}else $r--;
}
echo $ans;
?>
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Solution Guide
Problem
Given a sorted array and X, count pairs (i
Input / Output
Input
Line1 n X. Line2 n sorted integers.
Output
One integer count.
Details
Common Mistakes
- Misreading input/output format.
- Not handling constraints and edge cases.
- Off-by-one errors in loops.
- Forgetting to reset variables between test cases (if any).
Official Solution
<?php
$inputText=trim(stream_get_contents(STDIN));
if($inputText==='') exit;
$tokens=preg_split('/\\s+/', $inputText);
$idx=0;
$n=intval($tokens[$idx++] ?? 0);
$x=intval($tokens[$idx++] ?? 0);
$a=[];
for($i=0;$i<$n;$i++) $a[] = intval($tokens[$idx++] ?? 0);
$l=0; $r=$n-1; $ans=0;
while($l<$r){
if($a[$l]+$a[$r] <= $x){
$ans += ($r-$l);
$l++;
}else $r--;
}
echo $ans;
?>
Solutions (0)
No solutions submitted yet. Be the first!