find-the-number-of-distinct-colors-among-the-balls 1.0.0
Find the Number of Distinct Colors Among the Balls
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1#include <bits/stdc++.h>
2
3using namespace std;
4
6{
7public:
8 vector<int> queryResults(int limit, vector<vector<int>>& queries)
9 {
10 limit = limit; // not needed
11 vector<int> result;
12 unordered_map<int, int> balls;
13 unordered_map<int, int> colors;
14 unordered_set<int> distinct_colors;
15
16 for (const auto& query : queries)
17 {
18 int b = query[0], c = query[1];
19
20 // ball already painted
21 if (balls.count(b))
22 {
23 int old_color = balls[b];
24 if (--colors[old_color] == 0)
25 distinct_colors.erase(old_color);
26 }
27
28 // assigning new color
29 balls[b] = c;
30 if (++colors[c] == 1)
31 distinct_colors.insert(c);
32
33 result.push_back(distinct_colors.size());
34 }
35
36 return result;
37 }
38};
39
40int main()
41{
42 // vector<vector<int>> queries = {{1, 4}, {2, 5}, {1, 3}, {3, 4}};
43 vector<vector<int>> queries = {{0, 1}, {1, 2}, {2, 2}, {3, 4}, {4, 5}};
44 vector<int> result = Solution().queryResults(4, queries);
45 for (int el: result)
46 cout << el << ' ';
47 cout << '\n';
48 return 0;
49}
vector< int > queryResults(int limit, vector< vector< int > > &queries)
Definition main.cpp:8
int main()
Definition main.cpp:40