Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- unsigned int u[6251]; /// aici avem 32 x 6251 biti = 200032; -- daca e aici inseamna ca apare o data
- unsigned int v[6251]; /// aici avem 32 x 6251 biti = 200032; -- daca e si aici atunci apare de mai multe ori
- int k;
- int getBit(int poz, unsigned int a[]){
- return ((a[poz/32] & (1 << (poz%32)))>0);
- }
- void setBit(int poz, unsigned int a[]){
- a[poz/32] |= (1 << (poz%32));
- }
- int main()
- {
- while(cin >> k){
- if(getBit(k,u)) {
- setBit(k,v); /// marchez a doua aparitie (cel putin a doua)
- }
- else
- {
- setBit(k,u); /// imi apare prima oara
- }
- }
- int contor=0;
- for(int i=0; i<200000; i++)
- if(getBit(i,u) && !(getBit(i,v))) contor++;
- cout << contor;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement