Skip to main content
Code Review

Return to Question

Commonmark migration
Source Link

There is a number space given from 1 to N. And there are M queries followed by that. In each query, we were given a number between 1 to N (both inclusive). We add these number one by one into a set.

Good range: A range in which there is exactly one element present from the set.

For each query, we need to find the good ranges. We need to return the sum of boundry of all good ranges.

Input:

First line will take two integer for input N and M. Then following m lines would be numbers between 1 and N (both inclusive).

Output:

Following M lines contains sum of boudaries of good ranges.

Note:

Range can consist of single element and represented as (x-x) where boundary sum will be x+x.

Example:

Input:

#include <iostream>
#include <set>
using namespace std;
class Solution
{
 public: 
 Solution(const unsigned int _N, const unsigned int _M) : N(_N), M(_M) {}
 
 
 void solve()
 {
 for(unsigned int i=0; i<M; ++i)
 {
 unsigned int v; 
 cin >> v; 
 cout << "New Element = " << v << endl; 
 q.insert(v); 
 print_res(); 
 cout << endl; 
 }
 }
 
 void print_res()
 { 
 unsigned int left=1;
 auto it=q.begin(); 
 unsigned int last = *it; 
 for(++it; it!=q.end(); ++it)
 {
 const unsigned int curr = *it; 
 const unsigned int right = curr-1; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 left = last+1; 
 last = curr; 
 }
 const unsigned right = N; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 }
 
 private: 
 unsigned int N; 
 unsigned int M; 
 set<unsigned int> q; 
}; 
int main() {
 // your code goes here
 unsigned int N=0; 
 unsigned int M=0; 
 cin >> N >> M; 
 Solution sol(N,M); 
 sol.solve(); 
 return 0;
}

There is a number space given from 1 to N. And there are M queries followed by that. In each query, we were given a number between 1 to N (both inclusive). We add these number one by one into a set.

Good range: A range in which there is exactly one element present from the set.

For each query, we need to find the good ranges. We need to return the sum of boundry of all good ranges.

Input:

First line will take two integer for input N and M. Then following m lines would be numbers between 1 and N (both inclusive).

Output:

Following M lines contains sum of boudaries of good ranges.

Note:

Range can consist of single element and represented as (x-x) where boundary sum will be x+x.

Example:

Input:

#include <iostream>
#include <set>
using namespace std;
class Solution
{
 public: 
 Solution(const unsigned int _N, const unsigned int _M) : N(_N), M(_M) {}
 
 
 void solve()
 {
 for(unsigned int i=0; i<M; ++i)
 {
 unsigned int v; 
 cin >> v; 
 cout << "New Element = " << v << endl; 
 q.insert(v); 
 print_res(); 
 cout << endl; 
 }
 }
 
 void print_res()
 { 
 unsigned int left=1;
 auto it=q.begin(); 
 unsigned int last = *it; 
 for(++it; it!=q.end(); ++it)
 {
 const unsigned int curr = *it; 
 const unsigned int right = curr-1; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 left = last+1; 
 last = curr; 
 }
 const unsigned right = N; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 }
 
 private: 
 unsigned int N; 
 unsigned int M; 
 set<unsigned int> q; 
}; 
int main() {
 // your code goes here
 unsigned int N=0; 
 unsigned int M=0; 
 cin >> N >> M; 
 Solution sol(N,M); 
 sol.solve(); 
 return 0;
}

There is a number space given from 1 to N. And there are M queries followed by that. In each query, we were given a number between 1 to N (both inclusive). We add these number one by one into a set.

Good range: A range in which there is exactly one element present from the set.

For each query, we need to find the good ranges. We need to return the sum of boundry of all good ranges.

Input:

First line will take two integer for input N and M. Then following m lines would be numbers between 1 and N (both inclusive).

Output:

Following M lines contains sum of boudaries of good ranges.

Note:

Range can consist of single element and represented as (x-x) where boundary sum will be x+x.

Example:

Input:

#include <iostream>
#include <set>
using namespace std;
class Solution
{
 public: 
 Solution(const unsigned int _N, const unsigned int _M) : N(_N), M(_M) {}
 
 
 void solve()
 {
 for(unsigned int i=0; i<M; ++i)
 {
 unsigned int v; 
 cin >> v; 
 cout << "New Element = " << v << endl; 
 q.insert(v); 
 print_res(); 
 cout << endl; 
 }
 }
 
 void print_res()
 { 
 unsigned int left=1;
 auto it=q.begin(); 
 unsigned int last = *it; 
 for(++it; it!=q.end(); ++it)
 {
 const unsigned int curr = *it; 
 const unsigned int right = curr-1; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 left = last+1; 
 last = curr; 
 }
 const unsigned right = N; 
 cout << "[" << left << ", "<< right << "] contains " << last << " and sum = " << (left+right) << endl; 
 }
 
 private: 
 unsigned int N; 
 unsigned int M; 
 set<unsigned int> q; 
}; 
int main() {
 // your code goes here
 unsigned int N=0; 
 unsigned int M=0; 
 cin >> N >> M; 
 Solution sol(N,M); 
 sol.solve(); 
 return 0;
}
Became Hot Network Question
edited tags
Source Link
vnp
  • 58.7k
  • 4
  • 55
  • 144

There is a number space given from 1 to N. And there are M queries followed by that. In each query, we were given a number between 1 to N (both inclusive). We add these number one by one into a set.

Good range: A range in which there is exactly one element present from the set.

For each query, we need to find the good ranges. We need to return the sum of boundry of all good ranges.

Input:

First line will take two integer for input N and M. Then following m lines would be numbers between 1 and N (both inclusive).

Output:

Following M lines contains sum of boudaries of good ranges.

Note:

Range can consist of single element and represented as (x-x) where boundary sum will be x+x.

Example:

Input:

10 4 
2 
5 
7 
9 

Output:

11 
18 
30 
46 

Explaination:

step-1) set: 2 
good range: (1-10) 
sum: 1+10=11 
step-2) set: 2 5 
good range: (1-4), (3-10) 
sum: 1+4+3+10=18 
step-3) set: 2 5 7 
good range: (1-4), (3-6), (6-10) 
sum: 1+4+3+6+6+10=30 
step-4) set: 2 5 7 9 
good range: (1-4), (3-6), (6-8), (8-10) 
sum: 1+たす4+たす3+たす6+たす6+たす8+たす8+たす10=46

There is a number space given from 1 to N. And there are M queries followed by that. In each query, we were given a number between 1 to N (both inclusive). We add these number one by one into a set.

Good range: A range in which there is exactly one element present from the set.

For each query, we need to find the good ranges. We need to return the sum of boundry of all good ranges.

Input:

First line will take two integer for input N and M. Then following m lines would be numbers between 1 and N (both inclusive).

Output:

Following M lines contains sum of boudaries of good ranges.

Note:

Range can consist of single element and represented as (x-x) where boundary sum will be x+x.

Example:

Input:

10 4 
2 
5 
7 
9 

Output:

11 
18 
30 
46 

Explaination:

step-1) set: 2 
good range: (1-10) 
sum: 1+10=11 
step-2) set: 2 5 
good range: (1-4), (3-10) 
sum: 1+4+3+10=18 
step-3) set: 2 5 7 
good range: (1-4), (3-6), (6-10) 
sum: 1+4+3+6+6+10=30 
step-4) set: 2 5 7 9 
good range: (1-4), (3-6), (6-8), (8-10) 
sum: 1+たす4+たす3+たす6+たす6+たす8+たす8+たす10=46
edited tags
Link
vnp
  • 58.7k
  • 4
  • 55
  • 144
Loading
Source Link
Loading
lang-cpp

AltStyle によって変換されたページ (->オリジナル) /