ALONE - Editorial

PROBLEM LINK:

Practice
Contest

Author: Prathamesh Sogale
Tester: Prathamesh Sogale
Editorialist: Ram Agrawal

DIFFICULTY:

EASY

PREREQUISITES:

Loops

PROBLEM:

One day Vaibhav gave a task to Meena. He gave him an array AA of size NN, array is of special type, each element is repeated exactly 3 times in this array except only one element appears only once. In this task Meena needs to find the element that occurs only once in this array.

  • Note!Note! You cannot use sorting in this problem

QUICK EXPLANATION:

In this Question, you have to find a number that is present only 1 time in an array.

EXPLANATION:

In this question, you can count the number of times every element is present in an array and then print the element which is present only one time

SOLUTIONS:

Setter's Solution
/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
	public static void main (String[] args) throws java.lang.Exception
	{
	Scanner sc=new Scanner(System.in);
	int T=sc.nextInt();
	while(T-->0){
	    int N=sc.nextInt();
	    long arr[]=new long[N];
	    for(int i=0;i<arr.length;i++){
	        arr[i]=sc.nextLong();
	    }
	    long one=0;
	    long two=0;
	    long not_three;
	    long x;
	    for(int i=0;i<arr.length;i++){
	        x=arr[i];
	         two |= one & x; 
      one ^= x;
      not_three = ~(one & two);
      one &= not_three;   
      two &= not_three;  
	        
	        }
	        
	    System.out.println(one);
	    
	}
	}
}
Tester's Solution
#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--){
	    long long int n;
	    cin>>n;
	    long long int arr[n];
	    unordered_map<long long int , long long int>mp;
	    for(int i=0;i<n;i++){
	        cin>>arr[i];
	        mp[arr[i]]++;
	    }
	    for(auto x:mp){
	        if(x.second==1){
	            cout<<x.first<<endl;
	        }
	    }
	    
	}
	return 0;
}
Editorialist's Solution
T = int(input())
for _ in range(T):
    N = int(input())
    n = map(int,input().split())
    k = list(n)
    for i in k:
        if k.count(i) == 1:
            print(i)
            break